递归细说

it2022-05-05  124

int vesursion(int n)

{

printf("%d\n",n);

if(n>1)

{

printf("递归前n=%d\n",n);

}

else

{

printf("结束递归n=%d\n",n);

}

printf("递归后n=%d\n",n);

}

void main()

{

recursion(3);

}

输出结果:递归前n=3

                  递归前n=2

                  递归前n=1

                 结束递归n=1

                  递归后n=1

                  递归后n=2

                  递归后n=3

递归的核心就在递归后的三个输出,因为程序每进行一次递归都会进行一次压栈,栈是先进后出,因此n=3时第一次递归,n=1最后一次递归,因此递归后先出输出3,最后输出1.

 


最新回复(0)