gpt4 book ai didi

java - 有人可以向我解释一下这个程序与堆栈的工作原理吗?

转载 作者:行者123 更新时间:2023-12-01 12:28:09 24 4
gpt4 key购买 nike

我一直非常渴望掌握递归,但我似乎误解了它

我在一本书中读到了一个问题,我有点困惑,我不想限制它,我想要一些关于堆栈的可靠解释,也关于函数的调用

class rectest
{
int values[];

rectest(int i)
{
values = new int[i];
}

void printarray(int i)
{
if(i==0)
return ;
else printarray(i-1);
System.out.print(values[i-1]+" ");
}
}

public class recursion
{
public static void main(String args[])
{
rectest ob = new rectest(10);
int i ;
for(i=0 ; i<10 ; i++)
ob.values[i] = i ;
ob.printarray(10);
}
}

最佳答案

RECURSION 意味着一次又一次地重复调用任何内容

This is one of the Traditional and important program to learn how Recursion works and ? is Recursion and Why Let me take an example of Calculating Factorial thier pseudocode will be like this

函数阶乘为:

input: integer n such that n >= 1
output: [n × (n-1) × (n-2) × … × 1]

1. if n is >= 1, return [ n × factorial(n-1) ]
2. otherwise, return 1

end factorial

现在这里发生的事情是它总是返回 [n*factorial(n-1)] 一遍又一遍地调用自己

现在让我们考虑一下您的背景

 public class recursion 
{
public static void main(String args[])
{
rectest ob = new rectest(10);

//这里初始化对象并调用其构造函数并初始化大小为 10 的数组

int i ; 
for(i=0 ; i<10 ; i++)
ob.values[i] = i ;

//在这里,您将每个成员变量分配给特定的值,例如位置 0 value[0]=0

ob.printarray(10);//这里你正在打印你现在已经传递的十个值的值这里发生了重要的事情

} }现在看看 printarray() 方法这里

void printarray(int i)
{
if(i==0)
return ;
else printarray(i-1);
//printarray(i-1) here it calls the method itself so as to print all the values recursively
System.out.print(values[i-1]+" ");
}

就是这样,如果您有更多疑问,请询问

关于java - 有人可以向我解释一下这个程序与堆栈的工作原理吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26173691/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com