目录
一,问题
二,思路
三,代码
一,问题
二,思路
根据题目,可以自己列出斐波那契数列(前四个)如下:
通过列出来的值,可以发现,前两个都是1(不存在值等于前两个数和的规律),从序号3开始的值等于前两个数的和。因此可以按照以下步骤去思考:
- 前两个数没有规律,直接返回1
- 从第三个数开始,当前值=前两个数的和,这个时候可以定义三个整型变量:a和b用来存储前两个数,c用来存储当前值(前两个数的和)
- 如果输入的数小于3,或者是小于等于2,那么对应的斐波那契数列都是1。
- 如果输入的数大于3,那么就需要给个循环,让a和b的值改变,进而改变c的值。当我输入3的时候,循环次数就为(3-2)=1,因为前两个数都是1,不需要进行相加运算(在之前就进行了判断输出)。
变量a,b,c的关系如下:
三,代码
#include<bits/stdc++.h>
using namespace std;
int main()
{int k;cin>>k;if(k<=2) cout<<1;else{int a=1,b=1,c=0;for(int i=0;i<k-2; i++){c=a+b;a=b;b=c;}cout<<c;}return 0;
}
有问题请在评论区留言或者是私信我,回复时间不超过一天。