小蓝有很多数字卡片,每张卡片上都是数字 0 到 9。小蓝准备用这些卡片来拼一些数,他想从 1 开始拼出正整数,每拼一个,就保存起来,卡片就不能用来拼其它数了。小蓝想知道自己能从 1 拼到多少。例如,当小蓝有 30 张卡片,其中 0 到 9 各 3 张,则小蓝可以拼出 1 到 10,但是拼 11 时卡片 1 已经只有一张了,不够拼出 11。现在小蓝手里有 0 到 9 的卡片各 2021 张,共 20210 张,请问小蓝可以从1拼到多少?
从1开始1-9每张牌都消耗一张,10-19;1消耗10张其他各消耗1张以此类推
1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30
31 32 33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48 49 50
51 52 53 54 55 56 57 58 59 60
61 62 63 64 65 66 67 68 69 70
71 72 73 74 75 76 77 78 79 80
81 82 83 84 85 86 87 88 89 90
91 92 93 94 95 96 97 98 99 100
得到 :1消耗的数量永远大于其他9个数的消耗数量。
所有我们只要计算1最多可以用到第多少个数。
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner cin=new Scanner(System.in);
int kapaishu=cin.nextInt();
int []a=new int[1];
a[0]=kapaishu;
for(int x=1;x<100000;x++) {
int b=x;
int c=x;
int jieguo=x;
while(c>0) {
b=b%10;
if(b==1) {
a[0]=a[0]-1;
}
c=c/10;
b=c;
}
if(a[0]==0) {
System.out.println(jieguo);
return;
}else if(a[0]<0) {
System.out.println(jieguo-1);
return;
}
}
}
}
注意;输出时分情况讨论最后一个数能否输出