c/c++遞歸、迭代例子

遞歸就是函數自己調用自己

比如求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;
}
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章