簡體   English   中英

Java中的階乘遞歸“可視化”

[英]factorial recursion “visualized” in java

所以我在Java中有這個基本的階乘計算器,但是在修改它以適應練習時遇到了麻煩。 它說:修改階乘方法以打印其局部變量和遞歸調用參數。 對於每個遞歸調用,在單獨的行上顯示輸出並添加縮進級別。 我認為我在理解打印聲明應去的地方時遇到麻煩。 局部變量= number以及遞歸調用參數= 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);
    }
}

}

我認為我在理解打印聲明應去的地方時遇到麻煩。

確實是的。 如您所見,練習狀態

修改階乘方法以打印其局部變量和遞歸調用參數。

因此,修改factorial而不是main 這樣,每次調用factorial時,都會按照練習的要求打印出新行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM