【发布时间】:2015-01-15 02:54:25
【问题描述】:
对于我的班级,我必须编写一个程序,我们必须从任何数字创建一个冰雹序列 (冰雹是一种数学理论,如果你将偶数除以 2,奇数乘以 3 再加 1,那么你最终会得到 4,2,1,4,2,1 的无穷模式)
我的提示是在程序到达 4,2,1,4,2,1 的两个序列后切断程序。目前我的代码正在运行,我可以在此模式的一个序列中将其切断。但是,我无法找出一个循环来在最后停止它。我的问题是,我是否将代码设置为无法捕捉到第二个序列?
代码:
Scanner inData = new Scanner(new File("test.txt"));
ArrayList<Integer> list= new ArrayList<Integer>();
while(inData.hasNext())
{
int num=inData.nextInt();
int var=list.size();
list.add(num);
while(num>1)
{
if(num%2==0)
{
num/=2;
list.add(num);
}
else
{
num=(num*3)+1;
list.add(num);
}
}
System.out.print(list);
}
}
文本输入为 10 的输出应为: [10、5、16、8、4、2、1、4、2、1] 目前: [10、5、16、8、4、2、1]
【问题讨论】: