noi 1.5 17 菲波那契数列
- 描述
- 菲波那契数列是指这样的数列: 数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和。
- 给出一个正整数k,要求菲波那契数列中第k个数是多少。
- 输入
- 输入一行,包含一个正整数k。(1 <= k <= 46)
- 输出
- 输出一行,包含一个正整数,表示菲波那契数列中第k个数的大小
- 样例输入
- 19
- 样例输出
- 4181
- 题意
- 给出一个k,求数列中第k个数是多少,数列中第1,2位的数是1,后一位是前两位的和。
- 思路
- 使用for循环,由于前两位已经给出所以k-2。设一个a,b,c,先b=b+a。再用c调换a和b的数值,每循环一次就向前一位,循环的过程中每次让新的数等于前两个数。
- 代码实现
using namespace std;
int main(){
int k,a=1,b=1,c;
cin>>k;
k=k-2;
for(int i=0;i<=k;i++){
b=a+b;//b=b+a。再用c调换a和b的数值,来保持循环。
c=a;//a,b调换位置。因为循环每次都只能往一个值上加。
a=b;
b=c;
}
cout<<b;//最后循环会多出一次所以输出上一次的a。
return 0;
}