信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1071:菲波那契数

时间限制: 1000 ms 内存限制: 65536 KB
提交数: 15947 通过数: 8392

【题目描述】

菲波那契数列是指这样的数列: 数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和。
给出一个正整数k,要求菲波那契数列中第k个数是多少。

【输入】

输入一行,包含一个正整数k。(1 ≤ k ≤ 46)

【输出】

输出一行,包含一个正整数,表示菲波那契数列中第k个数的大小。

【输入样例】

19

【输出样例】

4181

【来源】

No

代码

#include <stdio.h>
long long feibonaqie(int n)
{

 	 //return feibonaqie(n-1)+feibonaqie(n-2);
	 //运行超时
	 long long int f[46];
	 f[0]=1;f[1]=1;
	 if(n<=2)
	 	{
	 		return 1;
		 }
		 else
		 {
		 	 for(int i=2;i<n+1;i++)
			  {
		 	   		 f[i]=f[i-1]+f[i-2];
			 }
		 }
	
	 return f[n-1];
}
int main ()
{
	int k;
	scanf("%d",&k);
	printf("%lld",feibonaqie(k));
	return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_43336281/article/details/88373414
今日推荐