Problem
Description
求在某一段整数范围(L,R)内,某数字x出现的次数。
Input
两个数字,分别为L,R,即该范围的左右值。
Output
在(L,R)范围内,数字x出现的次数。
Sample
Input
12 22
当x=2时
12-----2出现1次
20-----2出现1次
21-----2出现1次
22-----2出现2次
所以,在(12,22)区间内,数字2一共出现了5次(这五行是过程示例,不需要输出)
Output
5
Code
枚举法。
#include<iostream>
using namespace std;
/*
* 计算x在整数z中出现的次数
* 题目中x的值为2,所以设置x默认值为2,这个默认值可有可无
*/
int compute(int z, int x = 2)
{
int n;
int s = 0;//记录x出现的次数
if (z == 0 && x == 0)//z为0,数字x为0时,会执行
s++;
while (z != 0)
{
n = z % 10;
z = z / 10;
if (x == n)
s++;
}
return s;
}
int main()
{
int L, R;
int sum = 0;
cin >> L >> R;
for (int i = L; i <= R; i++)//循环计算每个整数中,数字x出现的次数,并累加
{
sum += compute(i);
}
cout << sum << endl;
return 0;
}
若有错误请留言。