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;
} 
posted @ 2021-09-29 14:26  CodeSpark  阅读(197)  评论(0编辑  收藏  举报