找出以100万以下的数字开始的最长序列。
来源:互联网 发布:用手机怎么注册淘宝号 编辑:程序博客网 时间:2024/04/30 03:29
以下迭代序列定义在整数集合上:
n n/2 (当n是偶数时)
n 3n + 1 (当n是奇数时)
应用以上规则,并且以数字13开始,我们得到以下序列:
13 40 20 10 5 16 8 4 2 1
可以看出这个以13开始以1结束的序列包含10个项。虽然还没有被证明(Collatz问题),但是人们认为在这个规则下,以任何数字开始都会以1结束。
以哪个不超过100万的数字开始,能给得到最长的序列?注意: 一旦序列开始之后,也就是从第二项开始,项是可以超过100万的。
public class Test {public static int max = 0;public static long value = 0;public static void getStep(long n) {long temp = n;int count = 0;while(true){if(n == 1) {count++;if(max < count){max = count;value = temp;}break;}if (n % 2 == 0) {n /= 2;count ++;} else {n = 3 * n + 1;count ++;}}}public static void main(String[] args) {long n = 1000000;for (long i = n; i > 13; i--) {getStep(i);}System.out.println(max);System.out.println(value);}}
- 找出以100万以下的数字开始的最长序列。
- 欧拉工程第14题 找出以100万以下的数字开始的最长序列
- 找出最小的100万数字
- 输入一个字符串,找出最长的数字子串,并指出从第几个字符开始
- 找出最长的顺序子序列
- 找出字符串中最长的数字字符串
- 找出字符串中最长的数字字符串
- 在text中找出以同样的顺序连续出现在query中的最长连续字母序列的长度
- 找出以下100个50位数之和的前十位数字
- CSS 变量以数字开头以下划线开头的问题。
- 【c++】字符串中找出最长的连续数字字符串
- 找出最长的等差数列
- 找出最长的胖子
- 找出最长数字子串,并指出开始位置
- 给定一个数字序列,输出一个最长的子序列
- 2014年阿里研发笔试题:在text中找出以同样的顺序连续出现在query中的最长连续字母序列的长度
- 阿里14年机试-----在text中找出以同样的顺序连续出现在query中的最长连续字母序列的长度
- 找出由n个数组成的序列内最长的递增子序列
- 贪吃蛇测试版1.0
- 编码
- java基础之 IO流
- 降低H.264流播放时延的几种方法
- 六大开源监测工具 你用过哪个?
- 找出以100万以下的数字开始的最长序列。
- java基础之 对象序列化、transient关键字、StringTokenizer
- FFmpeg-mt初次试验
- Working-with-files-in-javascript
- zuo个有钱的老子
- DH 密钥交换
- java基础之 网络和socket
- ffmpeg解码器优化
- java基础之 JAVAC的用法