题解:P12163 [蓝桥杯 2025 省 C/Java A] 2025
_mei_tou_nao_ · · 题解
洛谷P12163
题目传送门
题意
求 1∼20250412 中,有多少个数含有至少 1 个 0、2 个 2、1 个 5 的数。
思路分析
使用暴力枚举 1~20250412 之间的每一个数,将其数位分离,分离出每一个数,如:
代码
代码仅供参考,抄题解可耻
#include <bits/stdc++.h>
using namespace std;
int ans, a0, a2, a5;//存储各数字数量
int main() {
for (int i = 1; i <= 20250412; i++) {//枚举1~20250412之间的每一个数
int a = i;
while (a) {//数位分离
int h = a % 10;
a /= 10;
if (h == 0) {
a0++;
}
if (h == 2) {
a2++;
}
if (h == 5) {
a5++;
}//增加计数器
}
if (a0 >= 1 && a2 >= 2 && a5 >= 1) {
ans++;
}//判断是否满足要求
a0 = a2 = a5 = 0;//清空计数器
}
cout << ans;//输出
return 0;
}
或
#include <bits/stdc++.h>
using namespace std;
int main() {
cout <<506754;//直接输出答案
return 0;
}