【PAT Basic Level】1021 个位数统计

    技术2022-07-15  94

    目录

    题目分析代码 专栏:PAT乙级刷题笔记

    题目

    给定一个 k k k 位整数。请编写程序统计每种不同的个位数字出现的次数。例如:给定 N = 100311 N=100311 N=100311,则有 2 个 0,3 个 1,和 1 个 3。

    输入格式

    每个输入包含 1 个测试用例,即一个不超过 1000 位的正整数 N N N

    输出格式

    N N N 中每一种不同的个位数字,以 D:M 的格式在一行中输出该位数字 D 及其在 N N N 中出现的次数 M。要求按 D 的升序输出。

    输入样例

    100311

    输出样例

    0:2 1:3 3:1

    分析

    有点哈希表那味道。用一个数组a[10]储存每个数出现的次数,遍历到哪一个数 i i i,就对应a[ i i i]+1就好了。 为0的不输出.

    代码

    #include<iostream> #include<string> using namespace std; int main(){ int a[10] = {0}; string s; cin>>s; for(int i = 0;i < s.length();++i) ++a[s[i] - '0']; for(int i = 0;i < 10;++i) if(a[i] != 0) cout<<i<<":"<<a[i]<<endl; }
    Processed: 0.013, SQL: 9