【题解】NowCoder BC153 [NOIP2010]数字统计

简介: 【题解】NowCoder BC153 [NOIP2010]数字统计

题目来源:牛客

BC153 [NOIP2010]数字统计

题目描述:

请统计某个给定范围[L, R]的所有整数中,数字2出现的次数。

比如给定范围[2, 22],数字2在数2中出现了1次,在数12中出现1次,在数20中出现1次,在数21中出现1次,在数22中出现2次,所以数字2在该范围内一共出现了6次。

输入描述:

输入共1行,为两个正整数L和R,之间用一个空格隔开。

输出描述:

输出共1行,表示数字2出现的次数。

示例1

输入:2 22

输出:6

示例2

输入:2 100

输出:20

备注:

1 ≤ L ≤ R ≤ 10000。

解析

本题比较简单,由于数据量比较小,很容易想到枚举。枚举 L ≤ R 这个区间里的所有数字,判断每个数字里面含有的 2 的个数就可以轻松解决。

获取一个数字的所有位数有一个非常经典的方法,将这个数不断地模10和除10。模10获得最右的一位,除10可以去除最右的一位。

代码实现

#include <iostream>
using namespace std;
int main()
{
    int L = 0;
    int R = 0;
    cin >> L >> R;
    int ans = 0;
    for (int i = L; i <= R; ++i)
    {
      // 不能直接修改i,因为i涉及循环
        int tmp = i;
        while (tmp)
        {
          // 找到某一位符合要求
            if (tmp % 10 == 2)
              // 答案数 +1
                ++ans;
            tmp /= 10;
        }
    }
    cout << ans;
    return 0;
}
目录
相关文章
|
10天前
|
C++
【洛谷 P1307】[NOIP2011 普及组] 数字反转 题解(字符串)
**NOIP2011普及组题目:给定整数N,反转其位得到新数。新数首位非0(除非N=0)。输入0时直接输出0,其他情况输出反转后的数,考虑负数及前导0。提供的C++代码实现通过读入字符串,反转数字顺序并处理符号和前导0。**
9 0
|
5天前
|
知识图谱
【题解】NowCoder BC64 牛牛的快递
【题解】NowCoder BC64 牛牛的快递
17 7
|
2月前
|
C语言
pta 浙大版《C语言程序设计(第3版)》题目集 习题6-6 使用函数输出一个整数的逆序数 (20分)
pta 浙大版《C语言程序设计(第3版)》题目集 习题6-6 使用函数输出一个整数的逆序数 (20分)
|
2月前
|
算法 C语言
【牛客-算法】NC56 回文数字
🚩 前言 🔥 该专栏作为算法题笔记,记录算法的思路、遇到的问题,以及能跑的代码,持续更新中! 🔥 推荐一款面试、刷题神器牛客网:👉开始刷题学习👈
41 0
|
9月前
华为机试HJ96:表示数字
华为机试HJ96:表示数字
|
9月前
华为机试HJ84:统计大写字母个数
华为机试HJ84:统计大写字母个数
|
9月前
|
容器
华为机试HJ10:字符个数统计
华为机试HJ10:字符个数统计
|
9月前
华为机试HJ40:统计字符
华为机试HJ40:统计字符
|
Python
Python|力扣周赛-统计位数为偶数的数字
Python|力扣周赛-统计位数为偶数的数字
74 0
|
算法
题目:输出n行杨辉三角形
题目:输出n行杨辉三角形
72 0