//递归与迭代
//递归就是自己调用自己(占用内存多),迭代就是一般的循环
//递归需要用一定的条件进行控制,否则是死循环
//计算阶乘 (factorial)
#include <iostream>
using namespace std;
long factorial1(int n)//递归
{
if(n==0)
return 1;
else
return n* factorial1(n-1);
}
long factorial2(int n)//迭代
{
long result=1;
int i=n;
for(;i>0;i--)
result*=i;
return result;
}
int main()
{
for(int i=0;i<10;i++)
cout<<i<<"!="<<factorial1(i)<<endl;
cout<<factorial2(5)<<endl;
return 0;
}