今天来总结下递归:
#include <iostream>
using namespace std;
void doA()
{
cout<<"你好啊"<<endl;
doA();
}
void doB()
{
cout<<"从前有座山,山里有座庙,庙里有个老和尚,老和尚再给小和尚讲故事:"<<endl;
doB();
}
int main()
{
//doA();
doB();
return 0;
}
/////////////////////////////////////////////////////////////////
递归的应用:阶乘
#include <iostream>
//任何能使用递归(好理解,但是慢,占用大量资源)解决的问题,一定能使用迭代(普通循环)解决
using namespace std;
long jiecheng(int n);
int main()
{
//cout<<jiecheng(5)<<endl;
for(int i=0;i<10;i++)
{
cout<<i<<"的!="<<jiecheng(i)<<endl;
}
return 0;
}
long jiecheng(int n)
{
if(n==0)
return 1;
else
return n*jiecheng(n-1);
}
下面是阶乘的迭代算法:
#include <iostream>
//阶乘的迭代算法
using namespace std;
long diedai(int n);
int main()
{
int c=diedai(9);
cout<<c<<endl;
for(int a=0;a<10;a++)
{
cout<<diedai(a)<<endl;
}
return 0;
}
long diedai(int n)
{
long o=1;
for(int i=n;i>0;i--)
{
o=o*i;
}
return o;
}