自助建站系统下载,新开传奇网站发布网,怎样做企业官方网站,贵安新区网站建设本题总分#xff1a;5 分
【问题描述】 小蓝有很多数字卡片#xff0c;每张卡片上都是数字0到9。 小蓝准备用这些卡片来拼一些数#xff0c;他想从1开始拼出正整数#xff0c;每拼一个#xff0c;就保存起来#xff0c;卡片就不能用来拼其它数了。 小蓝想知道自己能从1拼…本题总分5 分
【问题描述】 小蓝有很多数字卡片每张卡片上都是数字0到9。 小蓝准备用这些卡片来拼一些数他想从1开始拼出正整数每拼一个就保存起来卡片就不能用来拼其它数了。 小蓝想知道自己能从1拼到多少。 例如当小蓝有30张卡片其中0到9各3张则小蓝可以拼出1到10,但是拼11时卡片1已经只有一张了不够拼出11。 现在小蓝手里有0到9的卡片各2021张共20210张请问小蓝可以从1拼到多少?
【答案提交】 这是一道结果填空的题你只需要算出结果后提交即可。本题的结果为一个整数在提交答案时只填写这个整数填写多余的内容将无法得分。
【思路】 从1开始拼判断每次拼的数字各位的数字还有没有卡片没有就结束。
【Java代码】
public class Cards {public static void main(String[] args) {//创建并初始化卡片集数组int[] cases new int[10];for (int i 0; i cases.length; i) {cases[i] 2021;}//设置变量num表示当前正在拼的数temp和flag均是一个临时变量int num;int temp;boolean flag false;//从1开始拼for(num 1;;num) {//对正在拼的这个数看其每一位是什么数字如果卡片集数组中还有就-1没有就跳出循环结束temp num;while(temp ! 0) {if (cases[temp % 10] 0) {flag true;break;}cases[temp % 10]--;temp / 10;}//没有相应的卡片可以拼了退出循环结束if (flag) {break;}}//输出可以拼的个数记得num是当前正在拼的它是拼不成功的所以只能拼到前一个System.out.println(--num);}
}【结果】 3181