遞歸就是函數自己調用自己
比如求n的階乘n!,我們拿5爲例,
5!=5*4*3*2*1
我們可以把它寫成:
5!=5*4!
4!=4*3!
3!=3*2!
2!=2*1!
1!=1*0!//已知的結果
也就是逐漸的把複雜問題簡單化,最終是一個已知的結果
#include <iostream>
using namespace std;
long factorial(int n);
long interative_factorial(int n);
void main()
{
int num;
cout<<"請輸入數字:"<<endl;
scanf("%d",&num);
int result;
result=interative_factorial(num);
//result=factorial(num);
cout<<num<<"的階乘爲"<<result<<endl;
}
long factorial(int n)//遞歸
{
if(n==0)
return 1;//這個就是遞歸結束的條件
else
return n*factorial(n-1);
}
long interative_factorial(int t)//迭代
{ int i;
int m=1;
if(t==0||t==1)
return 1;
else
{
for(i=1;i<=t;i++)
{
m*=i;
}
return m;
}
}