输入6,它是如何产生数字21的
所以帮助我理解递归是如何工作的。为什么下面的代码按这个顺序打印出1,2,3,4,5,6?为什么不向下6为什么它在上升?
public class Recursion {
public static void main(String[]args){
Recursion r = new Recursion();
r.blag(6);
}
int blag(int num){
if(num!=0){
blag(num-1);
System.out.println(num);
}
return 10;
}
}
或
像这样的东西:
int getTriNum(int num){
if(num==1){
return 1;
}else{
return(num+getTriNum(num-1));
}
}
请解释如果您为num.
在打印之前调用递归。一旦递归达到num=1。将忽略返回的值10,并打印值1。然后返回到num等于2时的调用。当函数调用return时。它们按数字顺序打印出来
blag(num-1);System.out.println(num)
在第二个示例中,返回时会添加数字。6+5+4+3+2+1=21
在blag()
中,您有以下代码:
if (num != 0){
blag(num - 1);
System.out.println(num);
}
请注意,在打印数字之前,blag(num - 1)
会被再次递归调用。因此,这些数字是按从小到大的顺序打印的。