题目描述
请统计某个给定范围 [L,R][L,R] 的所有整数中,数字 22 出现的次数。
比如给定范围 [2,22][2,22],数字 22 在数 22 中出现了 11 次,在数 1212 中出现 11 次,在数 2020 中出现 11 次,在数 2121 中出现 11 次,在数 2222 中出现 22 次,所以数字 22 在该范围内一共出现了 66 次。
输入格式
22 个正整数 LL 和 RR,之间用一个空格隔开。
输出格式
数字 22 出现的次数。
输入输出样例
输入 #1
2 22
输出 #1
6
输入 #2
2 100
输出 #2
20
说明/提示
1≤L≤R≤1000001≤L≤R≤100000。
NOIP2010 普及组 第一题
代码
#include<iostream>
using namespace std;
int main()
{
long long a, b, s = 0, n; // 定义四个长整型变量,a和b用于输入,s用于计数,n作为临时变量
cin >> a >> b; // 输入a,b;
for (int y = a; y <= b; y++) // 使用for循环遍历从a到b的所有整数
{
n = y; // 将当前整数y的值赋给n
while (n != 0) // 使用while循环来检查n的每一位数字
{
if (n % 10 == 2) s++; // 如果n的最后一位数字是2,则s增加1
n /= 10; // 将n除以10,去掉其最后一位数字,用来检查下一位
}
}
cout << s; //输出答案
return 0; //
}