P1554 梦中的统计
题目背景
Bessie 处于半梦半醒的状态。过了一会儿,她意识到她在数数,不能入睡。
题目描述
Bessie的大脑反应灵敏,仿佛真实地看到了她数过的一个又一个数。她开始注意每一个数码(0…9):每一个数码在计数的过程中出现过多少次?
给出两个整数 M 和 N (1≤M≤N≤2×10^9 以及 N−M≤5×10^5),求每一个数码出现了多少次。
输入格式
第 1 行: 两个用空格分开的整数 M 和 N。
输出格式
第 1 行: 十个用空格分开的整数,分别表示数码 0…9 在序列中出现的次数。
输入输出样例
输入 | 输出 |
---|---|
129 137 | 1 10 2 9 1 1 1 1 0 1 |
解答
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,m,num;
int a[10]={0};
cin>>m>>n;
for(int i=m;i<=n;i++)
{
num=i;
while(num>0)
{
switch(num%10)
{
case 0:
a[0]++;
break;
case 1:
a[1]++;
break;
case 2:
a[2]++;
break;
case 3:
a[3]++;
break;
case 4:
a[4]++;
break;
case 5:
a[5]++;
break;
case 6:
a[6]++;
break;
case 7:
a[7]++;
break;
case 8:
a[8]++;
break;
case 9:
a[9]++;
break;
}
num/=10;
}
}
for(int i=0;i<10;i++)
cout<<a[i]<<' ';
return 0;
}
博主的个人网站:https://codespark.cn/