ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

【洛谷】P1980 [NOIP 2013 普及组] 计数问题 题解

2026/8/5 11:49:04 拓冰建站 浏览量
【洛谷】P1980 [NOIP 2013 普及组] 计数问题 题解

题目背景

NOIP2013 普及组 T1

题目描述

试计算在区间 1 到 n 的所有整数中,数字 x(0≤x≤9)共出现了多少次?例如,在 1 到 11 中,即在 1,2,3,4,5,6,7,8,9,10,11 中,数字 1 出现了 4 次。

输入格式

2 个整数 n,x,之间用一个空格隔开。

输出格式

1 个整数,表示 x 出现的次数。

输入输出样例

输入 #1复制

11 1

输出 #1复制

4

说明/提示

对于 100% 的数据,1≤n≤106,0≤x≤9。

思路:

1.循环遍历从1至n的每一个数

2.用while循环 + if判断语句 逐一判断每位是不是x。

3.若是sum++在判断下一位 不是则直接判断下一位

4.输出sum

c++代码实现:

#include<bits/stdc++.h> using namespace std; int main(){ long long n,x,sum=0; cin>>n>>x; for(int i=1;i<=n;i++){ long long j=i; while(j>0){ if(j%10==x) sum++; j/=10; } } cout<<sum; return 0; }