题目描述
小蓝有很多数字卡片,每张卡片上都是数字0到9
小蓝准备用这些卡片来拼一些数,他想从 1开始拼出正整数,每拼一个,就保存起来,卡片就不能用来拼其它数了,小蓝想知道自己能从 1拼到多少
例如,当小蓝有 30 张卡片,其中0到9各3张,则小蓝可以拼出1到10,
但是拼 11 时卡片1已经只有一张了,不够拼出 11。
现在小蓝手里有0到9的卡片各 2021张,共20210 张,请问小蓝可以从1拼到多少?
解题思路
1.首先创建一个计数器count
2.用for循环进行0到20210的递加
3.用空字符串进行拼接,再根据字符串的长度进行for循环再逐个取出判断是否为1,如果为1,计数器增加1个
4.当计数器记录到最后一个1的时候就停止,并且输出字符串
public class Main {
public static void main(String[] args) {
int count=0;
for(int i=1;i<20210;i++){
String s=i+"";
for(int j=0;j<s.length();j++){
//把1给耗尽
if(s.charAt(j)=='1'){
count++;
}
}
if(count==2021){
System.out.print(s);
break;
}
}
}
}