题目描述
所谓角谷猜想,是指对于任意一个正整数,如果是奇数,则乘 3加 1,如果是偶数,则除以 2,得到的结果再按照上述规则重复处理,最终总能够得到 1。如,假定初始整数为 5,计算过程分别为 16 、8 、4 、2 、1。
程序要求输入一个整数,将经过处理得到1的过程输出来。
输入格式
一个正整数N(N≤2,000,000)。
输出格式
从输入整数到 1 的步骤,每一步为一行,每一部中描述计算过程。最后一行输出 End
。如果输入为 1,直接输出 End
。
输入输出样例
样例输入#1
5
样例输出#1
5*3+1=16
16/2=8
8/2=4
4/2=2
2/2=1
End
运行代码
import java.util.*;
public class Main{
public static void main(String[]args){
Scanner s=new Scanner(System.in);
long n=s.nextLong();
while(n!=1){
if(n%2!=0){
System.out.print(n+"*3+1=");
n=n*3+1;
System.out.println(n);
}
else if(n%2==0){
System.out.print(n+"/2=");
n/=2;
System.out.println(n);
}
}
System.out.println("End");
}
}
总结
一开始我写的是int类型,但是结果显示超时,改了数据类型就AC了。