1. 程式人生 > >PAT 星際密碼 (遞推 + 找規律) - 詳細題解

PAT 星際密碼 (遞推 + 找規律) - 詳細題解

通過這道題我發現PAT的一個規律, 就是題比較難讀懂, 而題本身並不難

比如這道題吧, 我把程式都寫對了, 還是沒能讀懂題意

看到89我就知道這是一個斐波那契數列, 因為只取後四位所以要%10000

//星際密碼
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstring>
#include <string>
#include <vector>
#include <queue>
#include <cmath>
using namespace std;
#define ms(x, n) memset(x,n,sizeof(x));
typedef  long long LL;
const LL maxn = 1e4+5;

int n, num[maxn], fib[maxn];
void init()
{ //初始化斐波那契數列
    fib[1] = 1, fib[2] = 2;
    for(int i = 3; i <= maxn; i++)
        fib[i] = (fib[i-1]%10000+fib[i-2]%10000)%10000;
}
void solve()
{
    for(int i = 1; i <= n; i++)
        printf("%04d",fib[num[i]]);
    printf("\n");
}
int main()
{
    init();
    while(cin >> n){
        for(int i = 1; i <= n; i++)
            cin >> num[i];
         solve();
    }
    return 0;
}