C++菲波那契数列(NOI)

菲波那契数列

描述

菲波那契数列是指这样的数列: 数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和。
给出一个正整数k,要求菲波那契数列中第k个数是多少。

输入

输入一行,包含一个正整数k。(1 <= k <= 46)

输出

输出一行,包含一个正整数,表示菲波那契数列中第k个数的大小

样例输入

19

样例输出

4181

NOI的一道题,就用循环吧。

首先斐波那契数列大家都知道的,那么题中求第k个数,问题在第k个数从何而来,很简单。

我们先定义三个变量:a,b,c。来模拟斐波那契数列的变动。

众所周知,斐波那契数列第一个和第二个数都是1,接下来每数等于前两数之和。

于是,如下。

int a=1,b=1,c;
    c=a+b;
    a=b;
    b=c;

怎么样,各位都看得懂,到时候我们就有了这些数,那OK啊,能求出些数,只是求第k个而已,

我就用for循环了,上代码!

#include<iostream>  //头文件 
using namespace std;
int main(){
	int a=1,b=1,c,k;
	//定义abc,注意a,b开始都等于1,因为它们是前两项,k就是第k个
	cin>>k;         //输入k
	if(k==1||k==2) cout<<1;
	//先看k是否是第1,2个,因为前两项是1
	else{          //否则进入for循环
		for(int i=3;i<=k;i++){
		//i要是3,因为从第3项开始,前两项是1,就是a和b
			c=a+b;
			a=b;
			b=c;  //寻找第k个数中 
		}
		cout<<c;  //得到答案,输出c
	}
	return 0;
}

试一试,AC了。还是很好理解的。

看到着,点赞+关注。

万水千山总是情,点赞关注行不行。

本作者的第一篇文章,预知后事如何,请听下回分解。

愿诸君看懂,AC,成为大牛。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值