数据结构与算法(C++)之递归

今天来总结下递归:

#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;
}

no one and you
原文地址:https://www.cnblogs.com/wslQAQ/p/12329952.html