题目描述:
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
小蓝有很多数字卡片,每张卡片上都是数字0到9。小蓝准备用这些卡片来拼一些数,他想从1开始拼出正整数,每拼一个, 就保存起来,卡片就不能用来拼其它数了。 小蓝想知道自己能从1拼到多少。 例如,当小蓝有 30张卡片,其中0到9各3张,则小蓝可以拼出1到 10,但是拼11时卡片1已经只有一张了,不够拼出11。
现在小蓝手里有0到9的卡片各2021张,共20210张,请问小蓝可以从1拼到多少?
提示:建议使用计算机编程解决问题。
运行限制:
最大运行时间:1s
最大运行内存: 128M
#include<stdio.h>
int main()
{
int i,k=1;
int a[10] = { 0 };
for (i = 0; i < 10; i++)
{
a[i] = 2021;
}
while (1)
{
int n = k;
while (n >= 10)
{
a[n % 10]--;
n /= 10;
}
if (n >= 0 && n <= 9)
{
a[n]--;
}
for (i = 0; i < 10; i++)
{
if (a[i] == 0)
{
printf("%d\n", k);
return 0;
}
}
k++;
}
return 0;
}
答案:3181