信息学奥赛一本通(1201:菲波那契数列)
生活随笔
收集整理的這篇文章主要介紹了
信息学奥赛一本通(1201:菲波那契数列)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1201:菲波那契數(shù)列
時(shí)間限制: 1000 ms ??? ??? 內(nèi)存限制: 65536 KB
提交數(shù): 17460 ??? 通過(guò)數(shù): 9993
【題目描述】
菲波那契數(shù)列是指這樣的數(shù)列: 數(shù)列的第一個(gè)和第二個(gè)數(shù)都為1,接下來(lái)每個(gè)數(shù)都等于前面2個(gè)數(shù)之和。
給出一個(gè)正整數(shù)a,要求菲波那契數(shù)列中第a個(gè)數(shù)是多少。
【輸入】
第1行是測(cè)試數(shù)據(jù)的組數(shù)n,后面跟著n行輸入。每組測(cè)試數(shù)據(jù)占1行,包括一個(gè)正整數(shù)a(1<=a<=20)。
【輸出】
輸出有n行,每行輸出對(duì)應(yīng)一個(gè)輸入。輸出應(yīng)是一個(gè)正整數(shù),為菲波那契數(shù)列中第a個(gè)數(shù)的大小。
【輸入樣例】
4 5 2 19 1【輸出樣例】
5 1 4181 1【分析】
? ? ? ? Fibonacci數(shù)列是最經(jīng)典的遞推題目,可以用遞歸實(shí)現(xiàn)、也可以用遞推實(shí)現(xiàn)。
【參考代碼】
方法1:遞推法
#include <stdio.h> #define N 25 long long a[N]={0,1,1}; int main() {int i,t,n;for(i=3;i<=20;i++)a[i]=a[i-1]+a[i-2];scanf("%d",&t);while(t--){scanf("%d",&n);printf("%lld\n",a[n]);}return 0; }方法2:遞歸法
#include <stdio.h> long long fib(int n) {if(n==1 || n==2)return 1;elsereturn fib(n-1)+fib(n-2); } int main() {int t,n;scanf("%d",&t);while(t--){scanf("%d",&n);printf("%lld\n",fib(n));}return 0; }http://ybt.ssoier.cn:8088/problem_show.php?pid=1201
?
總結(jié)
以上是生活随笔為你收集整理的信息学奥赛一本通(1201:菲波那契数列)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 信息学奥赛一本通(1165:Hermit
- 下一篇: 信息学奥赛一本通(2040:【例5.7】