Wizard of Orz CodeForces - 1467A
题意:
有个长度为n初始状态下各元素均为0的数组,没过一秒数组中所有元素都会+1,如果是9则会变成0,即0-9不断循环。现在你能够在开始后的任意时间点选取任意一个位置,改位置上的数字立刻停止增加,与其距离为x的位置上的元素则在x秒后暂停(这x秒内还是数字会继续增加)。给定你长度n,求出由n个元素构成的最大数字(包含前导零)
题解:
规律题,通过找规律不难发现前三位是989,从第四位开始就是0~9的循环
代码:
#include<bits/stdc++.h>
typedef long long ll;
using namespace std;
inline int read(){
int s=0,w=1;
char ch=getchar();
while(ch<'0'||ch>'9'){
if(ch=='-')w=-1;ch=getchar();}
while(ch>='0'&&ch<='9') s=s*10+ch-'0',ch=getchar();//s=(s<<3)+(s<<1)+(ch^48);
return s*w;
}
int main()
{
int t;
cin>>t;
while(t--)
{
int n;
cin>>n;
if(n==1)cout<<9<<endl;
else if(n==2)cout<<98<<endl;
else
{
cout<<9<<8<<9;
for(int i=0;i<n-3;i++)
{
cout<<i%10;
}
cout<<endl;
}
}
return 0;
}
/*
888
989
8888
9890
88888
98901
8888888
98901
*/