题目:
小蓝有很多数字卡片,每张卡片上都是数字 0 到 9。 小蓝准备用这些卡片来拼一些数,他想从 1 开始拼出正整数,每拼一个, 就保存起来,卡片就不能用来拼其它数了。小蓝想知道自己能从 1 拼到多少。 例如,当小蓝有 30张卡片,其中 0 到 9 各 3 张,则小蓝可以拼出 1 到 10, 但是拼 11 时卡片 1 已经只有一张了,不够拼出 11。现在小蓝手里有 0到 9的卡片各 2021 张,共 20210 张,请问小蓝可以从 1拼到多少? 提示:建议使用计算机编程解决问题
题目解析:
- 一共有2021张卡片,每用一张会减少一次。
- 从1开始,每次对10取余,得到对应的数字。
- 知道没有卡牌了,结束循环。
题目代码:
package Test.Test_2021;
import java.util.Arrays;
public class _1卡片 {
public static void main(String[] args) {
int[] arr =new int[999];
for (int i = 0; i < 10; i++) {
arr[i]=2021;
}
int count=0;
for (int i = 1; ; i++) {
int temp=i;
while (temp!=0){
int k=temp%10;
if(arr[k]!=0){
arr[k]--;
temp/=10;
}else {
System.out.println(i-1);
return;
}
}
}
}
}
题目答案: