描述
菲波那契数列是指这样的数列: 数列的第一个和第二个数都为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菲波那契数列") 标签:数列,17,个数,数都,菲波,那契 From: https://www.cnblogs.com/0518-dtg/p/16601163.html