P1980 [NOIP2013 普及组] 计数问题
题目
描述
试计算在区间 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出现的次数。
输入输出样例
| 输入 | 输出 |
|---|---|
11 1 |
4 |
解答
建模分析
分析N个数字里面有什么数字,即需求出每位数的数字,例如一个百位数 123,得求出 百位数 1,十位数 2,个位数 3,然后再和x比较。
求各个位上的数,取余是不二法门。
#include<iostream>
using namespace std;
int n,x,c;
int main()
{
c=0;
cin>>n>>x;
for(int i=1;i<=n;i++)
{
if(i==10000000&&x==1) c++;
if(i>=1000000&&i%10000000/1000000==x) c++;
if(i>=100000&&i%1000000/100000==x) c++;
if(i>=10000&&i%100000/10000==x) c++;
if(i>=1000&&i%10000/1000==x) c++;
if(i>=100&&i%1000/100==x) c++;
if(i>=10&&i%100/10==x) c++;
if(i>=1&&i%10==x) c++;
}
cout<<c;
return 0;
}
博主的个人网站:https://codespark.cn/

浙公网安备 33010602011771号