/*
递归伪代码
void recurs(argumentlist)
{
statements1
if(test)
recurs(arguments)
statements2
}
只要if语句为true,每个recurs()调用都将执行statements1,然后在返回recurs(),而不会执行statements2。只有将if语句为false时,
当前调用将执行statements2。当前调用结束后,程序控制权将返回给调用他的recurs(),而该recurs()将执行其statements2的部分,然后结束,
并将控制权返回给前一个调用,依次内推。例如,如果recurs()进行了5次递归调用,则第一个statements1部分将按照函数调用顺序执行5次,
然后statements2部分将以与函数调用相反的顺序执行5次。进入5层递归后,程序将沿进入的路径返回。
*/
-
int temp = 0; -
void recurs(int n,int m)//n=2,m=0 -
{ -
m++; -
temp++; -
cout << "Counting down..." << n<<" "<< m <<" "<<temp<< endl; -
if (n > 0) -
{ -
recurs(n - 1,m); -
} -
cout << "n=" << n << " m=" << m << " temp=" << temp << ": Kaboom!\n"; -
} -
int main() -
{ -
recurs(4, 0); -
return 0; -
} -

1767

被折叠的 条评论
为什么被折叠?



