PAT 1106 2019数列 15分

73 阅读1分钟

题目:1106 2019数列 - PAT (Basic Level) Practice (中文) (pintia.cn)

解析:1106 2019数列 – PAT乙级真题 – 柳婼 の blog (liuchuo.net)

#include <iostream>
using namespace std;
int n, sum, a[4] = {2, 0, 1, 9};
int main() {
    cin >> n;
    for (int i = 0; i < min(4, n); i++) cout << a[i];
    for (int i = 4; i < n; i++) {
        sum = (a[0] + a[1] + a[2] + a[3]) % 10;
        cout << sum;
        a[0] = a[1], a[1] = a[2], a[2] = a[3], a[3] = sum;
    }
    return 0;
}

按要求模拟就行了:

PAT乙级1106 2019数列_哔哩哔哩_bilibili

#include<bits/stdc++.h>
using namespace std;

int main()
{  
    int n;cin>>n;
    if(n==1)cout<<"2";
    else if(n==2)cout<<"20";
    else if(n==3)cout<<"201";
    else if(n==4) cout<<"2019";
    else
    {
        string str="2019";
        for(int i=4;i<n;i++)
        {
            str+=((str[i-1]-'0')+(str[i-2]-'0')+(str[i-3]-'0')+(str[i-4]-'0'))%10+'0';
        }   
        
        cout<<str<<endl;
    }
 
    return 0;
}