⑴ 计算过程可能会发生超出int范围的情况,因此需要将int类型的任意整数N转存为long类型的任意整数n;
⑵ 通过观察可以发现,每次先需要输出当前整数n,然后后续的计算过程可能包含两种情况:
① 当前整数n为偶数时,令n = n / 2,然后输出【"/2=" + n】;
② 当前整数n为奇数时,令n = n * 3 + 1,然后输出【"*3+1=" + n】;
⑶ 在计算结果不为1时,通过循环,做以下操作:
① 输出当前整数n;
② 如果当前整数n为偶数,则执行偶数流程,否则执行奇数流程;
⑷ 循环结束后,输出End。
三、程序代码
importjava.util.Scanner;publicclassMain{publicstaticvoidmain(String[] args){Scanner input =newScanner(System.in);intN= input.nextInt();// 任意的正整数long n =N;// 运算过程可能会超出int范围,将N转存为long类型的n/* 在计算结果不为1时 */while(n !=1){System.out.print(n);// 首先,输出当前整数nif(n %2==0){// 如果当前整数n为偶数,则执行偶数流程
n = n /2;System.out.println("/2="+ n);}else{// 否则当前整数n为奇数,执行奇数流程
n = n *3+1;System.out.println("*3+1="+ n);}}System.out.print("End");}}