Recursion java中的递归函数? 公共班机{ 公共静态void main(字符串[]args){ 印刷美元(7); } 公共静态无效打印美元(整数n){ 如果(n>1){ 印刷美元(n-1); } 对于(int i=0;i1,值(7-1)=6进入递归函数的下一级。它会发生几次(6到5、5到4等),直到函数达到一次

Recursion java中的递归函数? 公共班机{ 公共静态void main(字符串[]args){ 印刷美元(7); } 公共静态无效打印美元(整数n){ 如果(n>1){ 印刷美元(n-1); } 对于(int i=0;i1,值(7-1)=6进入递归函数的下一级。它会发生几次(6到5、5到4等),直到函数达到一次,recursion,tail-recursion,Recursion,Tail Recursion,在执行printDullars()函数后,n的值是如何增加的。实际上,n的值在每次迭代中都会减少1 当7首次进入该功能时,逻辑检查该值是否大于1。由于7>1,值(7-1)=6进入递归函数的下一级。它会发生几次(6到5、5到4等),直到函数达到一次 需要注意的一件重要事情是,如果您刚刚开始递归,那么当代码到达n=1的点时,美元符号开始打印,因为要达到代码的这一部分,机器必须完成所有递归调用。因此,打印的第一个“$”实际上是来自n=1的调用,然后是n=2,以此类推 我建议您尝试打印出n而不是“$”,

在执行printDullars()函数后,n的值是如何增加的。

实际上,n的值在每次迭代中都会减少1

当7首次进入该功能时,逻辑检查该值是否大于1。由于7>1,值(7-1)=6进入递归函数的下一级。它会发生几次(6到5、5到4等),直到函数达到一次

需要注意的一件重要事情是,如果您刚刚开始递归,那么当代码到达n=1的点时,美元符号开始打印,因为要达到代码的这一部分,机器必须完成所有递归调用。因此,打印的第一个“$”实际上是来自n=1的调用,然后是n=2,以此类推


我建议您尝试打印出n而不是“$”,这样您就可以更清楚地了解它的工作方式。

n的值实际上在每次迭代中都会减少1

当7首次进入该功能时,逻辑检查该值是否大于1。由于7>1,值(7-1)=6进入递归函数的下一级。它会发生几次(6到5、5到4等),直到函数达到一次

需要注意的一件重要事情是,如果您刚刚开始递归,那么当代码到达n=1的点时,美元符号开始打印,因为要达到代码的这一部分,机器必须完成所有递归调用。因此,打印的第一个“$”实际上是来自n=1的调用,然后是n=2,以此类推


我建议您尝试打印出n而不是“$”,这样您可以更清楚地了解它的工作方式。

在打印出第一个“$”之前,我可以理解n的值是如何再次改变的?函数完成后,n的最终值是不变的。只有在传递到“下一个”递归调用时,它才会减少。正如您所说的值为n=1,我建议您阅读本文,它可能会比我解释得更好一些。直到第一个“$”被打印出来,我才能理解n的值是如何再次改变的?函数完成后n的最终值是不变的。只有在传递到“下一个”递归调用时,它才会减少。正如您所说的值为n=1,我建议您阅读本文,它可能会比我解释得更好一些。

public class Main {

    public static void main(String[] args) {
        printDollars(7);
    }

    public static void printDollars(int n) {
        if (n > 1) {
            printDollars(n - 1);
        }
        
        for (int i = 0; i < n; i++) {
            System.out.print("$");
        }
    }
}