/*
递归伪代码
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;
-
}
-