为什么我的回归不适用于冰雹?

时间:2014-09-30 19:12:50

标签: java string int

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)但是这不起作用所以我不知道该怎么做。

1 个答案:

答案 0 :(得分:4)

如果您希望该函数返回下一个Collat​​z编号,请删除最后一个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;
}

并将返回值更改为intreturn String.valueOf(n);

如果您想要打印整个Hailstone系列,您可以执行类似

的操作
int n = initialValue;
do {
    System.out.println(n);
    n = hailstone(n);
} while (n != 1);