洛谷 梦中的统计

题目背景

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]<<" ";
    }
}

题目不难,但是自己没有想到用 / % ,想的是用将数字转字符去计算

posted @ 2021-04-20 21:01  JK~  阅读(144)  评论(0)    收藏  举报