【题解】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;
}
目录
相关文章
|
5月前
|
知识图谱
【题解】NowCoder BC64 牛牛的快递
【题解】NowCoder BC64 牛牛的快递
40 7
|
6月前
|
C语言
pta 浙大版《C语言程序设计(第3版)》题目集 习题6-6 使用函数输出一个整数的逆序数 (20分)
pta 浙大版《C语言程序设计(第3版)》题目集 习题6-6 使用函数输出一个整数的逆序数 (20分)
|
6月前
|
算法 C语言
【牛客-算法】NC56 回文数字
🚩 前言 🔥 该专栏作为算法题笔记,记录算法的思路、遇到的问题,以及能跑的代码,持续更新中! 🔥 推荐一款面试、刷题神器牛客网:👉开始刷题学习👈
57 0
华为机试HJ96:表示数字
华为机试HJ96:表示数字
110 1
华为机试HJ84:统计大写字母个数
华为机试HJ84:统计大写字母个数
|
容器
华为机试HJ10:字符个数统计
华为机试HJ10:字符个数统计
[蓝桥杯 2020 省 AB3] 乘法表
[蓝桥杯 2020 省 AB3] 乘法表
92 0
|
算法 C++ Python
每日算法系列【LeetCode 233】数字 1 的个数
每日算法系列【LeetCode 233】数字 1 的个数
|
机器学习/深度学习 人工智能 BI
AcWing 蓝桥杯AB组辅导课 03、数学与简单dp(二)
AcWing 蓝桥杯AB组辅导课 03、数学与简单dp(二)
AcWing 蓝桥杯AB组辅导课 03、数学与简单dp(二)