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;
}

 
posted @ 2022-08-19 10:31  be_scx  阅读(93)  评论(0编辑  收藏  举报