题目: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;
}