17:菲波那契数列
描述
菲波那契数列是指这样的数列: 数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和。
给出一个正整数k,要求菲波那契数列中第k个数是多少。
输入
输入一行,包含一个正整数k。(1 <= k <= 46)
输出
输出一行,包含一个正整数,表示菲波那契数列中第k个数的大小
样例输入
19
样例输出
4181
题意总结
菲波那契数列:数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和。求菲波那契数列中第k个数是多少。
解题思路
先用if判断k是否为1或者2,如果是,直接输出1.否则用for循环求解,循环从0到k-2,表示把前k个数除去前两个数;循环过程中让新的数等于前两个数的和。
代码
#include<bits/stdc++.h>
using namespace std;
int main (){
int k,a1=1,a2=1,sum;
cin>>k;
if(k==1 || k==2){ //判断k是否为1或者2,如果是,直接输出1。
cout<<1;
return 0;
}
else { //否则用for循环求解。
for(int i=0;i<k-2;i++){ //循环从0到k-2,表示把前k个数除去前两个数。
sum=a1+a2; //循环过程中让新的数等于前两个数的和。
a1=a2;
a2=sum;
}
}
cout<<sum;
return 0;
}
[noi1.5.17菲波那契数列](http://http://noi.openjudge.cn/ch0105/17/ "noi1.5.17菲波那契数列")

浙公网安备 33010602011771号