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;
}

猜你喜欢

转载自blog.csdn.net/a1097304791/article/details/84036434
今日推荐