03-在整数区间内,求某数字出现的次数(C++)

这是一个使用C++编程解决的问题,程序通过枚举法计算在给定的整数范围(L,R)内,特定数字x出现的次数。程序首先定义了一个函数`compute`来计算单个整数中x的出现次数,然后在主函数中遍历整个范围并将结果累加。示例展示了在(12,22)区间内数字2出现了5次。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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;
}

若有错误请留言。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值