递归

xiaoxiao2021-02-28  111

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

转载请注明原文地址: https://www.6miu.com/read-43577.html

最新回复(0)