標題:
遞迴函式 (二) - 費式數列
[打印本頁]
作者:
tonyh
時間:
2014-8-30 16:18
標題:
遞迴函式 (二) - 費式數列
本帖最後由 tonyh 於 2014-8-30 16:41 編輯
費氏數列規則如下:
第n項 = 第 n-1 項 + 第 n-2 項
即整個費式數列為:
1 1 2 3 5 8 13 21 34 55 89 144 233 377...
利用函式遞迴法, 推算費氏數列中第N項的值.
[attach]959[/attach]
#include<iostream>
#include<cstdlib>
using namespace std;
int fei(int);
int main()
{
int n;
cout<<"請輸入欲推算費氏數列的項次: ";
cin>>n;
cout<<"費氏數列中第"<<n<<"個項次的值為: "<<fei(n)<<endl;
system("pause");
return 0;
}
int fei(int n)
{
if(n<=1)
return n;
else
return fei(n-1)+fei(n-2);
}
/*
假設 n=4
fei(4)=fei(3)+fei(2)
=fei(2)+fei(1)+fei(1)+fei(0)
=fei(1)+fei(0)+1+1+0
=1+0+1+1+0
=3
*/
複製代碼
作者:
林宇翔
時間:
2014-8-30 16:43
本帖最後由 林宇翔 於 2014-8-30 16:45 編輯
#include<iostream>
#include<cstdlib>
using namespace std;
int g(int);
int main()
{
int a;
cout<<"請輸入費數列的項次: ";
cin>>a;
cout<<"費數列中的第" << a<<"個像次的數是"<<g(a) << endl;
system("pause");
return 0;
}
int g(int a)
{
if(a <= 1)
return a;
else
return fei(n-1)+fei(n-2);
}
複製代碼
作者:
劉得恩
時間:
2014-8-30 16:44
#include<iostream>
#include<cstdio>
using namespace std;
long double fib(int);
int main()
{
int f;
cout<<"請輸入欲推算的費氏數列項次: ";
cin>>f;
cout<<"費氏數列中第"<<f<<"個項次的值為"<<fib(f)<<endl;
system("pause");
return 0;
}
long double fib(int n)
{
if(n<=1)
return n;
else if(n<0)
while(1)
cout<<'\a';
else
return fib(n-1)+fib(n-2);
}
複製代碼
作者:
張峻瑋
時間:
2014-8-30 16:46
#include<iostream>
#include<cstdlib>
using namespace std;
int fei(int);
int main()
{
int n;
cout<<"請輸入欲推算的費式數列項次: ";
cin>>n;
cout<<"費式數列中第"<<n<<"個項次的值為:"<<fei(n)<<endl;
system("pause");
return 0;
}
int fei(int n)
{
if(n<=1)
return n;
else
return fei(n-1)+fei(n-2);
}
複製代碼
作者:
李允軒
時間:
2014-8-30 16:47
#include<iostream>
#include<cstdlib>
using namespace std;
int a(int);
int main()
{
int n;
cout << "請輸入欲推算費氏數列的項次:" << endl;
cin >> n;
cout << "費氏數列中第" << n << "個項次的值為:" << a(n) << endl;
system("pause");
}
int a(int n)
{
if(n<=1)
return n;
else
return a(n-1)+ a(n-2);
}
複製代碼
作者:
張彥承
時間:
2014-8-30 16:47
#include<iostream>
#include<cstdlib>
int fei(int);
using namespace std;
int main ()
{
int n;
cout<<"請輸入欲推算費氏數列的項次:";
cin>>n;
cout<<"費氏數列第"<<n<<"個數次的值為: "<<fei(n)<<endl;
system("pause");
return 0;
}
int fei(int n)
{
if(n<=1)
return n;
else
return fei(n-1)+fei(n-2);
}
複製代碼
作者:
周雍程
時間:
2014-8-30 16:48
#include<iostream>
#include<cstdlib>
using namespace std;
int fei(int);
int main()
{
int n;
cout<<"請輸入欲推算的費事數列項次: ";
cin>>n;
cout<<"費事數列第"<<n<<"個數次的值為: "<<fei(n)<<endl;
system("pause");
return 0;
}
int fei(int n)
{
if(n<=1)
return n;
else
return fei(n-1)+fei(n-2);
}
複製代碼
作者:
劉得旗
時間:
2014-8-30 16:49
#include<iostream>
#include<cstdlib>
using namespace std;
int fei(int);
int main()
{
int n;
cout<<"輸入欲推算費氏數列項次";
cin>>n;
cout<<"費氏數列中第"<<n<<"各項次的值為"<<fei(n)<<endl;
system("pause")
return 0;
}
int fei(int n)
{
if(n<=1)
return n;
else
return fei(n-1)+fei(n-2);
}
複製代碼
作者:
張郁庭
時間:
2014-9-5 19:41
#include<iostream>
#include<cstdlib>
using namespace std;
int fei(int);
int main()
{
int n;
cout<<"請輸入欲推算費氏數列的項次: ";
cin>>n;
cout<<"費氏數列中第"<<n<<"個項次的值為: "<<fei(n)<<endl;
system("pause");
return 0;
}
int fei(int n)
{
if(n<=1)
return n;
else
return fei(n-1)+fei(n-2);
}
複製代碼
歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://istak.org.tw/seed/)
Powered by Discuz! 7.2