1.卡片
题目
解析
必须要一个数组来存放0-9每个卡片的余额,每个数组下标对应各自卡片【下标为0代表卡片0的数量】
利用取模运算来帮我们判断应该扣除那个卡片的数量【12%10=2,卡片2的数量-1】
利用 ‘/10’来不断更替个位【12/10=1,再次循环给1取模】
跳出循环的条件【当某一张卡片用完就跳出循环】
代码
import java.util.Scanner; // 1:无需package // 2: 类名必须Main, 不可修改 public class Main { private static int[] cards={2021,2021,2021,2021,2021,2021,2021,2021,2021,2021}; public static void main(String[] args) { //从1开始测试 for(int i=1;;i++){ if(check(i)==0){ System.out.println(i-1); break; } } } /** * * @param num 判断的数字 * @return 返回1代表卡片还没完,返回代表有卡片已经用完了 */ static int check(int num){ while(num>0){ int index = num%10; if(cards[index]>0){ cards[index]--; } else{ return 0; } //处理数据以进行下一轮循环 num/=10; } return 1; } }