17:斐波那契数列
描述
菲波那契数列是指这样的数列: 数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和。
给出一个正整数k,要求菲波那契数列中第k个数是多少。
输入输入一行,包含一个正整数k。(1 <= k <= 46)输出输出一行,包含一个正整数,表示菲波那契数列中第k个数的大小
样例输入
19
样例输出
4181
题意总结:
已知数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和。计算第k 个数等于多少
解题思路:
先特判k是否小于等于2,如果满足就直接输出1;否则就要for循环求解,循环从0到k-2,表示把前k个数除去前两个个数后剩下的数,循环过程中让新的数等于前两个数的和
代码
#include<iostream>
#include<cmath>
using namespace std;
int main(){
int k,a=1,b=1,r=0;
cin>>k;
if(k==1||k==2){//用 if判断k是否等于1或2
cout<<1;
return 0;
}
for(int i=0;i<=k-2;i++){//用 for循环从0到k-2
r=a+b;//新的数等于前两个数的和
a=b;
b=r;
}
cout<<r;
return 0;
}