B2064

· · 题解

题目分析

这题其实就是循环的应用,除了前两个数已经被赋予了值,其它每个数都是前两个数相加的和,注意初始化。这里有多组数据,所以应该再加一重循环。如果你使用递归的话,时间复杂度会较之更高,所以循环更好。

代码实现

#include<bits/stdc++.h>
using namespace std;
int n;
int main(){
    cin>>n;
    for(int i=1;i<=n;i++){
        int a;
        cin>>a;
        int x[40];
        x[1]=x[2]=1;
        for(int i=3;i<=a;i++)
            x[i]=x[i-1]+x[i-2];
        cout<<x[a]<<endl;
    }
    return 0;
}