专栏文章
题解:P1179 [NOIP2010 普及组] 数字统计
P1179题解参与者 2已保存评论 1
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @miqkno79
- 此快照首次捕获于
- 2025/12/04 06:21 3 个月前
- 此快照最后确认于
- 2025/12/04 06:21 3 个月前
解题思路
对于十进制数,取模 可获得当前数的个位,整除 可去掉当前数的个位,要获取当前数的每一位可以循环取个位,去个位,直到这个数被拆分为 。因此观察数据范围后只需要枚举区间 内的所有数进行拆分并统计即可,时间复杂度为 。
代码实现
CPP#include<bits/stdc++.h>
using namespace std;
int main() {
int L, R, ans = 0;
cin >> L >> R;
for (int i = L; i <= R; i++) { //枚举区间[L,R]的数
int n = i; //避免i变成0造成死循环备份i的值
while (n) {
if (n % 10 == 2) ans++; //个位为2累加答案
n /= 10;
}
}
cout << ans;
return 0;
}
相关推荐
评论
共 1 条评论,欢迎与作者交流。
正在加载评论...