第十二届蓝桥杯省赛C&C++ 研究生组-卡片

solution1

直接依次计算,思维上最直接

cpp 复制代码
#include<stdio.h>
int main(){
	int a[10], n = 1, t1, t2, flag = 1;
	for(int i = 0; i < 10; i++)
		a[i] = 2021;
	while(flag){
		t1 = n;
		while(t1){
			t2 = t1 % 10;
			a[t2]--;
			if(a[t2] < 0){
				flag = 0;
				break;
			} 
			t1 /= 10;
		}
		if(!t1 && flag) n++;
	}
	printf("%d", n - 1);
	return 0;
}

solution2

观察可知,点数最小的卡片1最先消耗完

==》问题转化为1什么时候用光

cpp 复制代码
#include<stdio.h>
int main(){
	int n = 1, t1, t2, flag = 1, one = 0;
	while(flag){
		t1 = n;
		while(t1){
			t2 = t1 % 10;
			if(t2 == 1) one++;
			if(one == 2021){
				flag = 0;
				break;
			}
			t1 /= 10;
		}
		if(!t1 && flag) n++;
	}
	printf("%d", n);
	return 0;
}
相关推荐
BestOrNothing_201513 小时前
C++零基础到工程实战(4.3.3):vector数组访问与遍历
c++·迭代器·stl·vector·动态数组
charlie11451419113 小时前
通用GUI编程技术——图形渲染实战(三十三)——Direct2D与Win32/GDI互操作:渐进迁移实战
c++·图形渲染·gui·win32
文祐14 小时前
C++类之虚函数表及其内存布局(一个子类继承一个父类)
开发语言·c++
墨尘笔尖15 小时前
最大最小值降采样算法的优化
c++·算法
glimix15 小时前
Word-Pop:使用C语言开发打单词游戏
c语言·游戏
YIN_尹17 小时前
【Linux系统编程】进程地址空间
linux·c++
EverestVIP17 小时前
C++中空类通常大小为1的原理
c++
网域小星球18 小时前
C++ 从 0 入门(六)|C++ 面试必知:运算符重载、异常处理、动态内存进阶(终极补充)
开发语言·c++·面试
晚会者荣18 小时前
红黑树的插入(有图)
c++
John.Lewis18 小时前
C++进阶(12)附加学习:STL之空间配置器(了解)
开发语言·c++·笔记