卡片
最大运行时间:1s
最大运行内存: 128M
题目描述:
小蓝有很多数字卡片,每张卡片上都是数字 0 到 9。 小蓝准备用这些卡片来拼一些数,他想从 1 开始拼出正整数,每拼一个, 就保存起来,卡片就不能用来拼其它数了。 小蓝想知道自己能从 1 拼到多少。 例如,当小蓝有 30 张卡片,其中 0 到 9 各 3 张,则小蓝可以拼出 1 到 10, 但是拼 11 时卡片 1 已经只有一张了,不够拼出 11。 现在小蓝手里有 0 到 9 的卡片各 2021 张,共 20210 张,请问小蓝可以从 1 拼到多少? 提示:建议使用计算机编程解决问题
0~9每种卡牌各2021张,求出能从1开始拼 能拼到多少
emmmmmmm
暴力求解
每次填充一个数时 该数的每位各用一张牌去填充
如果这种牌无法填充了, 那么就是表示这个数无法填充
答案也就是能填充到最后的数 -1
import java.io.*;
import java.util.*;
public class Main
{
public static void main(String[] args)
{
int cnt[] = new int[10];
Arrays.fill(cnt, 2021);
int pos = 1;
while (true)
{
int res = pos;
while (res > 0)
{
int x = res % 10;
if (cnt[x] > 0)
cnt[x]--;
else
break;
res /= 10;
}
if (res != 0)
break;
pos++;
}
out.println(pos - 1);
out.flush();
out.close();
}
static Scanner sc = new Scanner(System.in);
static PrintWriter out = new PrintWriter(System.out);
}
fill
fill
如果有说错的 或者 不懂的 尽管提 嘻嘻
一起进步!!!
闪现



