洛谷 P1554 梦中的统计

题目描述:

Bessie 的大脑反应灵敏,仿佛真实地看到了她数过的一个又一个数。
她开始注意每一个数码(0 …9):每一个数码在计数的过程中出现过多少次?
给出两个整数 M 和 N,求在序列[M,M+1,M+2…N-1,N]中每一个数码出现了多少次。

输入格式:

第 1 行: 两个用空格分开的整数 M 和 N。

输出格式:

第 1 行: 十个用空格分开的整数,分别表示数码 0…9 在序列中出现的次数。

输入输出样例:

输入

129 137

输出

1 10 2 9 1 1 1 1 0 1

思路:

我们来看一下:

1%10=1;
2%10=2;
3%10=3;
.
.
.
.
.
.
111%10=1;
112%10=2;
不难看出:

对于任意一个整数x,有:x%n=x的个位数字。

所以:

我们可以定义一个a数组,存储0…9出现的次数。
再用一个双重循环,外循环枚举m…n的每一个数字,内循环枚举这个数字的每一位即可。

代码:

#includeusing namespace std;int n,m;
int a[10];int main()
{cin>>n>>m;for(int i=n;i<=m;i++) {for(int j=i;j;j/=10){a[j%10]++;}}for(int i=0;i<=9;i++){cout<<a[i]<<" ";}return 0;
}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部