【第16届蓝桥杯C++C组】--- 2025

hello呀,小伙伴们,这是第16届蓝桥杯第二道填空题,和第一道填空题一样也是十分基础的题目,有C语言基础基本都可以解,下面我讲讲我当时自己的思路和想法,如果你们有更优化的代码和思路,也可以分享分享

【第16届蓝桥杯C++C组】--- 2025_第1张图片

这道题目也是考虑 / 和 % 的基本操作符运算,我们可以设置一个循环,每次%这个数x,拿到个位这个数,然后用三个变量分别统计 2, 0, 5 的个数,最后查看变量个数是否符合有俩个2,一个0,一个5即可,如果满足,那么就符合2025这道题

#include 
using namespace std;

int n1, n2, n3;//分别统计0,2, 5个数 
long long cnt;//统计有多少个2025 
int main()
{
	for(long long i = 1; i <= 20250412; ++i)
	{
		long long tmp = i;//用临时变量tmp保存这个i,不可以让i执行下面代码,否则i会被改变
		while(tmp)
		{
			//拿到个位数,看是否有0,2,5,用计数器++ 
			if(tmp % 10 == 0) ++n1;
			else if(tmp % 10 == 2) ++n2;
			else if(tmp % 10 == 5) ++n3;
			
			tmp /= 10;//去掉个位数 
		} 
		if(n1 >= 1 && n2 >= 2 && n3 >= 1) cnt++;//如果这个数包含 1个0  2个2  1个5 ,那么cnt++ 
		
		n1 = n2 = n3 = 0;//计数器要清空,用于下一个数统计 
	}
	cout << cnt << endl;
	return 0;
 } 

【第16届蓝桥杯C++C组】--- 2025_第2张图片

你可能感兴趣的:(蓝桥杯,c++,c语言,算法,学习,数据结构)