蓝桥杯·寒假百校真题大联赛(大学B组)//卡片//
题目描述
卡片
小蓝有很多数字卡片,每张卡片上都是数字 0 到 9。小蓝准备用这些卡片来拼一些数,他想从 1 开始拼出正整数,每拼一个, 就保存起来,卡片就不能用来拼其它数了。 小蓝想知道自己能从 1 拼到多少。 例如,当小蓝有 30 张卡片,其中 0 到 9 各 3 张,则小蓝可以拼出 1 到 10, 但是拼 11 时卡片 1 已经只有一张了,不够拼出 11。 现在小蓝手里有 0 到 9 的卡片各 2021 张,共 20210 张,请问小蓝可以从 1 拼到多少
学会一个知识点:退出所有循环,goto out,**out:**加在循环要结束的后面
#include<iostream>
#include<algorithm>
using namespace std;
const int N = 20;
int a[N], cnt[N];
int main()
{
int res = 0;
for(int i = 1; i < 20210; i++)
{
int b = i;
while(b)
{
r = b % 10;
cnt[r] ++;
b = b / 10;
}
res = max(res, i);
for(int j = 1; j < 10; j++)
{
if(cnt[j] == 2021)
{
goto out;
}
}
}
out:
printf("%d", res);
return 0;
}