时间:2021-04-06 10:02:50 | 栏目:JAVA代码 | 点击:次
/**
* 考拉兹猜想:Collatz Conjecture
* 又称为3n+1猜想、冰雹猜想、角谷猜想、哈塞猜想、乌拉姆猜想或叙拉古猜想,
* 是指对于每一个正整数,如果它是奇数,则对它乘3再加1,
* 如果它是偶数,则对它除以2,如此循环,最终都能够得到1。
*/
package al;
public class CollatzConjecture {
private int i = 1;
public static void main(String[] args) {
long l = 9999999;
System.out.println("l is "+ l);
CollatzConjecture cc = new CollatzConjecture();
cc.Collatz(l);
}
/**
* 至今尚未有人能?C明其正?_性。有趣的是,目前也尚未?z查出任何反例。
* 猜想的?热菔沁@?拥模河幸??整?担?如果是偶?担?就除以 2 ;
* 如果是奇?担?就乘以 3 再加 1 。
* 一??整?挡?噙@?硬僮飨氯ィ?最後一定???成 1 。
* ?@??操作的?^程就是一?N迭代。
* @author
* @param param 初始输入的数字
*/
private void Collatz(long param) {
System.out.println("After " + i + " time we get result " + param);
if(param > 1) {
i++;
if (param%2 == 0) {
Collatz(param/2);
} else {
Collatz(3*param + 1);
}
}
}
}