请以代码和文字说明你对递归程序(即自己调用自己)的理解
#include<iostream>
using namespace std;
void Divide(int n)
{
if(n >= 3)
return;
for(int i = 0;i < 3;i++)
{
cout<<n<<" ";
Divide(n+1); //你就当成这里是f(n+1)就好了,递归调用的只不过恰好是自己而已,这样便很容易分析程序,更重要的是容易设计程序,这是回溯法的分析方法基础
}
}
void main()
{
Divide(0);
cout<<endl;
}
/*
0 1 2 2 2 1 2 2 2 1 2 2 2 0 1 2 2 2 1 2 2 2 1 2 2 2 0 1 2 2 2 1 2 2 2 1 2 2 2
心得体会:
递归调用的只不过恰好是自己而已,这样理解便容易分析,最重要的是设计程序,如果你一直按照什么一会又返回上一层的,一会自己就搞迷糊了。
递归调用时就当成调用的是别的程序,变化的不过是规模(体现在与函数参数的大小上)
*/