斐波那契数列的第n项,哪里出错了?要用循环语句。

题目描述
给定一个数列 1  1  2  3  5  8  13 求该数列的第n项

输入
一个整数n。
输出
一行,包含一个整数,表示该数列的第n项的值。

样例输入 Copy
1
样例输出 Copy
1

写法如下,哪里有问题,最好能提供完整代码。

img


#include <iostream>
using namespace std;

int main() {
    int a=1,b=1,n,i=1,k=3;
    cin>>n;
    while(n>=3 && k<=n){
        i=a+b;
        a=b;
        b=i;
        k++;
    }
    cout<<i;
    return 0;
}

你的代码有问题
计算这个数,是要根据上次计算结果 再计算
f(n)=f(n-1)+f(n-2)

cin>>n;
int f1=1;
intt f2=1;
int ans=f1;
for(int i=3;i<=n;i++)
{
    ans=f1+f2;
   f1=f2;
  f2=ans;
}
return ans;