这个问题关键在于想到1是最先用完的
题目如下:
小蓝有很多数字卡片,每张卡片上都是数字 0 00 到 9 99。
小蓝准备用这些卡片来拼一些数,他想从 1 11 开始拼出正整数,每拼一个,就保存起来,卡片就不能用来拼其它数了。
小蓝想知道自己能从 1 11 拼到多少。
例如,当小蓝有 30 3030 张卡片,其中 0 00 到 9 99 各 3 33 张,则小蓝可以拼出 1 11 到 10 1010,但是拼 11 1111 时卡片 1 11 已经只有一张了,不够拼出 11 1111。
现在小蓝手里有 0 00 到 9 99 的卡片各 2021 20212021 张,共 20210 2021020210 张,请问小蓝可以从 1 11 拼到多少?
#include <stdio.h>
int main(){
int arr[10],i,j;
for(i=0;i<10;i++){
arr[i]=2021;
}
for(i=0;arr[1]!=0;i++){
for(j=i;j>0;j/=10)
arr[j%10]--;
}
printf("%d",i-1);
return 0;
}