斐波那契数列求解C++,提交后W了

Description
已知a[1]=1,a[2]=1,a[n]=a[n-1]+a[n-2],求解a[n]的值,n<=90

Input
多组输入,每组一行,输入n,n<=90

Output
一行一个a[n]

#include<iostream>
using namespace std;
int main() {
    int n;
    while (cin >> n) {
        int a[100];
        for (int i = 3; i <= n; i++) {

            a[1] = 1;
            a[2] = 1;
            a[i] = a[i - 1] + a[i - 2];
        }
        cout << a[n];
    }
    return 0;
}

OJ提交后结果:
Wrong Answer50%

通过多次提交,我发现有三个问题,一是没有多次循环,二是没用long long,三是不用判断是否为1或2

-


//
//  main.cpp
//  递归
//
//  Created by 言清欢 on 2021/2/3.
//

#include <iostream>
#include<stdio.h>
using namespace std;
int fab(int n){
    int ret;
    if (n==1||n==2){
        return 1;
    }
    ret=fab(n-1)+fab(n-2);
    return ret;
}


int main(){
    int n;
    cout<<"请输入序号:";
    cin>>n;
    cout<<fab(n)<<endl;
    
}





你的算法没有问题,但是不符合题意
题目要求多组输入,全部输入完之后执行,然后多组输出
不是输入一组,输出一组,再输入一组,再输出一组
你得用数组把输入存起来,然后循环