题目描述
给出一个正整数n(n ≤ 100), 然后对这个数字- -直进行下面的操作:如果这个数字是奇数,那么将其乘3再加1,否则除以2。经过若干次循环后,最终都会回到1。经过验证很大的数字(7 X 10^11)都可以按照这样的方式比变成1,所以被称为“冰雹猜想“。例如当n是20,变化的过程是[20, 10, 5, 16, 8, 4,2, 1]。
输入格式
无
输出格式
无
输入输出样例
输入 #1
20
输出 #1
1 2 4 8 16 5 10 20
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int i = scanner.nextInt(), flag = 0;
int[] is = new int[10010];
is[0] = i;
while (i != 1) {
if (i % 2 == 1) { //奇数
i = i * 3 + 1;
} else {
i /= 2;
}
flag++;
is[flag] = i;
}
for (int j = flag; j >= 0; j--) {
System.out.print(is[j]+" ");
}
}
}