梦中的统计
题目背景
Bessie 处于半梦半醒的状态。过了一会儿,她意识到她在数数,不能入睡。
题目描述
Bessie的大脑反应灵敏,仿佛真实地看到了她数过的一个又一个数。她开始注意每一个数码(0…9):每一个数码在计数的过程中出现过多少次?
给出两个整数 M 和 N (1≤M≤N≤2×109以及N−M≤5×105 ),求每一个数码出现了多少次。
输入格式
第 1 行: 两个用空格分开的整数 M 和 N。
输出格式
第 1 行: 十个用空格分开的整数,分别表示数码 0…9 在序列中出现的次数。
输入输出样例
输入 #1复制
129 137
输出 #1复制
1 10 2 9 1 1 1 1 0 1
数组下标当数码,数组元素当统计数,穷举范围内的所有的数字,按位分解进行统计。
AC代码(C++)
#include <iostream>
using namespace std;
int countNum(int n, int arr[])
{
//每次获取数字末位统计完后舍弃末位
while (n > 0)
{
arr[n % 10]++;
n /= 10;
}
return 0;
}
int main()
{
int start, end;
cin >> start >> end;
int ansarr[10] = { 0 };
for (int i = start; i <= end; i++)
countNum(i, ansarr);
for (int i = 0; i < 10; i++)
cout << ansarr[i] << " ";
return 0;
}