【题目链接】
ybt 1071:菲波那契数
OpenJudge NOI 1.5 17:菲波那契数列
【题目考点】
1. 斐波那契数列
参考:多种方法求斐波那契数列
【解题思路】
迭代法求斐波那契数列
- 设置变量n1,n2,表示当前已知的倒数第二项,和最后一项
- 求新的项t,
t = n1 + n2;
- 新的倒数第二项是原来的最后一项,所以使
n2 = n1;
- t将会是新的最后一项,有
n1 = t;
- i为3时求出第3项,i为4时求出第4项,i为k时求出第k项。循环i从3循环到k,即可求出第k项
【题解代码】
解法1:迭代法
#include<bits/stdc++.h>
using namespace std;
int main()
{
int k, n2 = 1, n1 = 1, t;//n2, n1是当前求出的倒数第二项,和最后一项
cin>>k;//k:第几项
if(k <= 2)//前两项值为1
cout<<1;
else
{
for(int i = 3; i <= k; ++i)
{
t = n1 + n2;
n2 = n1;
n1 = t;
}
cout<<n1;//输出当前求出的最后一项
}
return 0;
}