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菲波那契数列")
posted @ 2022-08-19 10:42  HHDUK  阅读(274)  评论(0)    收藏  举报