菲波那契数列
描述
菲波那契数列是指这样的数列: 数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和。
给出一个正整数k,要求菲波那契数列中第k个数是多少。
输入
输入一行,包含一个正整数k。(1 <= k <= 46)
输出
输出一行,包含一个正整数,表示菲波那契数列中第k个数的大小
样例输入
19
样例输出
4181
NOI的一道题,就用循环吧。
首先斐波那契数列大家都知道的,那么题中求第k个数,问题在第k个数从何而来,很简单。
我们先定义三个变量:a,b,c。来模拟斐波那契数列的变动。
众所周知,斐波那契数列第一个和第二个数都是1,接下来每数等于前两数之和。
于是,如下。
int a=1,b=1,c;
c=a+b;
a=b;
b=c;
怎么样,各位都看得懂,到时候我们就有了这些数,那OK啊,能求出些数,只是求第k个而已,
我就用for循环了,上代码!
#include<iostream> //头文件
using namespace std;
int main(){
int a=1,b=1,c,k;
//定义abc,注意a,b开始都等于1,因为它们是前两项,k就是第k个
cin>>k; //输入k
if(k==1||k==2) cout<<1;
//先看k是否是第1,2个,因为前两项是1
else{ //否则进入for循环
for(int i=3;i<=k;i++){
//i要是3,因为从第3项开始,前两项是1,就是a和b
c=a+b;
a=b;
b=c; //寻找第k个数中
}
cout<<c; //得到答案,输出c
}
return 0;
}
试一试,AC了。还是很好理解的。
看到着,点赞+关注。
万水千山总是情,点赞关注行不行。
本作者的第一篇文章,预知后事如何,请听下回分解。
愿诸君看懂,AC,成为大牛。