Problem24

简介:

1.package com.yao.Algorithms;  
2.  
3.import java.util.ArrayList;  
4.import java.util.List;  
5./** 
6. *  
7. * @author shuimuqinghua77 @date 2012-4-26下午02:01:16 
8. * 
9. */  
10.public class Problem24 {  
11./** 
12. * 存放数字 
13. */  
14.private static List<Integer> list=new ArrayList<Integer>();  
15.  
16.private static int MILLION=100*100*100;  
17.private static int count=0;  
18.private static StringBuilder millionth=new StringBuilder();  
19.public static void main(String[] args) {  
20.    for(int i=0;i<10;i++)  
21.        list.add(i);  
22.    find(factor(list.size()-1),millionth);  
23.    System.out.println(millionth);  
24.    System.out.println(count);  
25.}  
26./** 
27. * 表示一个全排列的量 
28. * @param size 
29. * @return 
30. */  
31.private static int factor(int size) {  
32.    int factor=1;  
33.    for(int i=1;i<=size;i++){  
34.        factor*=i;  
35.    }  
36.    return factor;  
37.}  
38./** 
39. * 以递归的方式遍历 
40. * @param factor 
41. * @param millionth 
42. * @return 
43. */  
44.private static int find(int factor,StringBuilder millionth) {  
45.    for(int j=0;j<list.size();j++)  
46.    {  
47.        int future=count+factor;  
48.        if(future<MILLION){  
49.            count=future;  
50.        }  
51.        else if(future>MILLION){  
52.            millionth.append(list.get(j));  
53.            list.remove(j);  
54.            return find(factor(list.size()-1),millionth);  
55.        }  
56.        else{  
57.            millionth.append(list.get(j));  
58.            list.remove(j);  
59.            /** 
60.             * 关键部分   剩下的数字应该以倒序添加到digit末尾,也就是从大到小的顺序 
61.             */  
62.            for(int k=list.size()-1;k>=0;k--)  
63.                millionth.append(list.get(k));  
64.            return future;  
65.        }  
66.    }  
67.    return count;  
68.}  
69.}  

目录
相关文章
|
机器学习/深度学习 存储 算法
数据结构实验之二叉树实验基础
本实验旨在掌握二叉树的基本特性和遍历算法,包括先序、中序、后序的递归与非递归遍历方法。通过编程实践,加深对二叉树结构的理解,学习如何计算二叉树的深度、叶子节点数等属性。实验内容涉及创建二叉树、实现各种遍历算法及求解特定节点数量。
314 4
|
9月前
|
机器学习/深度学习 人工智能 算法
NeurIPS 2024:拆解高复杂运筹问题的砖石,打破数据稀缺的瓶颈,中科大提出高质量运筹数据生成方法
中国科学技术大学团队在NeurIPS 2024提出MILP-StuDio方法,通过拆解与重构MILP实例的块结构生成高质量数据,解决MILP领域数据稀缺问题。该方法保持实例可行性和计算难度,实验表明可将求解时间减少超10%。尽管存在块结构识别依赖和问题类型覆盖局限,但仍为提升MILP求解器性能提供新思路。
187 8
|
弹性计算 开发者
个人或学生群体如何选择阿里云服务器配置合适?
**阿里云服务器选择指南**: 对新手开发者、个人与学生, 推荐ECS经济型e实例。2核2G配置, 3M固定带宽, 40G系统盘, 仅99元/年。ecs.e-c1m1.large规格, Intel Xeon Platinum处理器, 适合中小网站、轻量应用。续费同价
333 9
|
9月前
|
Java 数据库连接 mybatis
MyBatis篇-映射关系(1-1 1-n n-n)
本文介绍了MyBatis中四种常见关系映射的配置方法,包括一对一、一对多、多对一和多对多。**一对一**通过`resultMap`实现属性与字段的映射;**一对多**以用户-角色为例,使用`&lt;collection&gt;`标签关联集合数据;**多对一**以作者-博客为例,利用`&lt;association&gt;`实现关联;**多对多**则通过引入第三方类(如UserForDept)分别在User和Dept类中添加集合属性,并配置对应的`&lt;collection&gt;`标签完成映射。这些方法解决了复杂数据关系的处理问题,提升了开发效率。
|
移动开发 前端开发 JavaScript
|
存储 SQL 监控
独家深度 | 一文看懂 ClickHouse vs Elasticsearch:谁更胜一筹?
本文的主旨在于通过彻底剖析ClickHouse和Elasticsearch的内核架构,从原理上讲明白两者的优劣之处,同时会附上一份覆盖多场景的测试报告给读者作为参考。
16728 1
独家深度 | 一文看懂 ClickHouse vs Elasticsearch:谁更胜一筹?
|
XML 应用服务中间件 Android开发
解决方案:Tomcat警告 [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property ‘source‘
解决方案:Tomcat警告 [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property ‘source‘
解决方案:Tomcat警告 [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property ‘source‘
|
容器
基础业务集成开发平台(BusinessWorks) - 业务开发篇
BusinessWorks目前以二方包的形式提供给已有业务系统用来满足平台化建设,适应业务快速开发需要。在这边ATA中,我们会介绍我们代码的组织结构和基本实现, 然后会针对交易领域简化开发一个订单下单的例子,来阐述如何进行业务的模块化开发,实现业务隔离。
10603 2
|
JavaScript Serverless PHP
开发函数计算的正确姿势 —— Http Trigger 本地运行调试
前言 首先介绍下在本文出现的几个比较重要的概念: __函数计算(Function Compute)__: 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传。
6113 0
|
关系型数据库 网络安全 数据库