阶乘递归"可视化"在java

时间:2016-04-03 21:42:49

标签: java recursion

所以我在java中有这个基本的阶乘计算器,但我无法修改它以适应练习。它说:修改阶乘 打印其局部变量和递归调用参数的方法。对于每个递归调用,在单独的行上显示输出并添加缩进级别。我想我无法理解打印语句应该去哪里。 local variable = number和recursion call parameter = number-1也是如此。到目前为止,这是我的代码。

public class Factorial {
    private static String s1="";
    public static long factorial(long number,long save) {


    if (number <= 1) { //test for base case
        System.out.printf("%s%d! = %d*%d!=  ",s1,save,save,save-1);
        s1 = s1 +" ";
        return 1;
    }
    else{ //recursion step
        return number * factorial(number - 1,save);
    }
}

//output factorial for values 0-21
public static void main(String[] args) {
    //calculate factorials 0-21
            for (int counter = 0; counter <= 21; counter++){
                long x = factorial(counter,counter);
        System.out.printf("%d%n",x);
    }
}

}

1 个答案:

答案 0 :(得分:1)

  

我认为我无法理解打印语句的位置。

是的,的确如此。如您所见,练习状态

  

修改阶乘方法以打印其局部变量和递归调用参数。

因此,请修改factorial而不是main。这样,每次调用factorial时,都会打印出一个新行,就像练习所要求的那样。

相关问题