题目描述:
小蓝有很多数字卡片,每张卡片上都是数字0 到9。
小蓝准备用这些卡片来拼一些数,他想从1 开始拼出正整数,每拼一个,就保存起来,卡片就不能用来拼其它数了。
小蓝想知道自己能从1 拼到多少。
例如,当小蓝有30 张卡片,其中0 到9 各3 张,则小蓝可以拼出1 到10,但是拼11 时卡片1 已经只有一张了,不够拼出11。
现在小蓝手里有0 到9 的卡片各2021 张,共20210 张,请问小蓝可以从1拼到多少?
提示:建议使用计算机编程解决问题。
一年没练题了。。。结果连去年的原题都写的有点吃力了。。
代码如下:
#include<iostream>
using namespace std;
const int maxn=1e5+10;
int a[maxn];
int main()
{
int n,i,j,k,x;
int flag=0;
for(i=1;i<maxn;i++)
{
j=i;
while(j)
{
k=j%10;
a[k]++;
if(a[k]>2021)
{
flag=1;
x=i-1;
break;
}
j=j/10;
}
if(flag==1)
break;
}
cout<<x<<endl;
return 0;
}