String hailstone(int n){
if(n >= 1)
if(n%2 == 0)
n = (n/2);
else
n = (n*3)+1;
else
return n;
}
我知道它需要返回一个字符串,我尝试Integer.toString(n)
但是这不起作用所以我不知道该怎么做。
答案 0 :(得分:4)
如果您希望该函数返回下一个Collatz编号,请删除最后一个else
:
int hailstone(int n){
if(n >= 1)
if(n%2 == 0)
n = (n/2);
else
n = (n*3)+1;
// else <--- should be removed.
return n;
}
并将返回值更改为int
或return String.valueOf(n);
如果您想要打印整个Hailstone系列,您可以执行类似
的操作int n = initialValue;
do {
System.out.println(n);
n = hailstone(n);
} while (n != 1);