日期:2014-05-20  浏览次数:20657 次

这是一道面试题目,求解(这段代码如何改错)
这是一道面试题目,求解.
static   void   g(int   i)
if(i==1)
{
        return;
}
if(i%2==0);
{
return;
}
else{
        g(3*i);
                return;
}

以上代码有错误,请改正并且输出如下结果:3   10   5   16   8   4   2

------解决方案--------------------
public static void main(String arg[]) {
g(3);
}
static void g(int i) {
if(i==1) return;
if(i%2==0) {
System.out.print(i+ " ");
g(i/2);
return;
}
else {
System.out.print(i+ " ");
g(3*i+1);
}
}