洛谷 梦中的统计
题目背景
Bessie 处于半梦半醒的状态。过了一会儿,她意识到她在数数,不能入睡。
题目描述
Bessie的大脑反应灵敏,仿佛真实地看到了她数过的一个又一个数。她开始注意每一个数码(0…9):每一个数码在计数的过程中出现过多少次?
给出两个整数 MM 和 NN (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<iostream>
#include<vector>
#include "string"
#include "map"
using namespace std;
int main() {
int M;
int N;
cin>>M;
cin>>N;
int arr[10] {0};
for (int i = M; i <= N; i++) {
int a = i;
while (a != 0) {
arr[a % 10]++;
a = a / 10;
}
}
for (int i = 0; i < 10; i++) {
cout<<arr[i]<<" ";
}
}
题目不难,但是自己没有想到用 / % ,想的是用将数字转字符去计算

浙公网安备 33010602011771号