蓝桥杯javaB组---卡片

题目描述:
小蓝有很多数字卡片,每张卡片上都是数字0 到9。
小蓝准备用这些卡片来拼一些数,他想从1 开始拼出正整数,每拼一个,就保存起来,卡片就不能用来拼其它数了。
小蓝想知道自己能从1 拼到多少。
例如,当小蓝有30 张卡片,其中0 到9 各3 张,则小蓝可以拼出1 到10,但是拼11 时卡片1 已经只有一张了,不够拼出11。
现在小蓝手里有0 到9 的卡片各2021 张,共20210 张,请问小蓝可以从1拼到多少?
提示:建议使用计算机编程解决问题。
————————————————
 

献上代码

public class main2 {
    static int N=2021;
	public static void main(String[] args) {
		// TODO Auto-generated method stub
     int[] num = new int[10];//给每个数一个数组
     int temp;//作为临时容器
     int t;//拼成的数的每一位
     int i;
     boolean flag = false;//判断是否可以退出循环
     for(i = 0;i<10;i++)
     {
    	 num[i]=2021;//每个数字有2021张
     }
     for(i=1;;i++)
     {
      	temp=i;//如21 21%10=1 21/10=2 能记录每一个数字
      	while (temp!=0) {
			t=temp%10;
			num[t]--;//用一张后减一
			if(num[t]<=0)//2021张都用完
			{
				flag=true;
				break;//退出循环
			}
			temp/=10;
		}
      	if(flag)
      	{
      		break;//退出循环
      	}
     }
     System.out.print(i);//退出循环时已经用完需要减一
	}
}

主要思路在于把0--9 开辟一个一维数组,a[0]=2021 就相当于0有2021张。 分解每一个拼成的数字,用完一张就减一,全部用完就退出循环,输出i就是最后的结果

2022蓝桥杯javab真题解析如下: 2022年蓝桥杯javab真题从基础到进阶,难度适中,测试了参赛选手在Java编程语言方面的知识和能力。题目涵盖了、字符串处理、面向对象编程等多个知识点,考察了学生的编程思维和解决问题的能力。 首先,题目要求实现一个学生成绩管理系统,包括学生信息录入、成绩查询、成绩统计等功能。通过类的设计和实例化,可以实现学生对象的创建和信息存储。使用或集合来存储多个学生对象,便于后续的查询和统计操作。 其次,题目要求实现一个简单的买卖股票的交易系统。需要设计一个股票类,其中包括股票名称、日期、买入价、卖出价等属性,然后通过输入的交易据进行统计,计算利润最大化的买入和卖出操作。可以使用循环和条件语句来实现逻辑判断和计算运算。 最后,题目要求实现一个小型的计算器程序。可以通过实现不同的方法来实现加、减、乘、除等基本运算。可以使用条件语句或循环语句来判断用户输入的操作,并进行相应的计算操作。 总结来说,2022蓝桥杯javab真题考察了参赛选手的编程能力和应用基础知识的能力,要求实现多个功能,并考察了类的设计和对象的使用。通过解析这些真题,可以提高对Java编程语言的理解和应用能力,对于参加类似的编程竞赛有一定的帮助作用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值