1021

作者: 笔墨流年乱浮生 | 来源:发表于2018-09-07 16:00 被阅读0次

    //1021 个位数统计(15 分)
    //给定一个 k 位整数 N=d_k−1 * 10^​k−1 +⋯+d_​1 * 10^​1​​ + d_0 (0≤d_​i≤9, i=0,⋯,k−1, d_​k−1 >0),请编写程序统计每种不同的个位数字出现的次数。例如:给定 N=100311,则有 2 个 0,3 个 1,和 1 个 3。
    //
    //输入格式:
    //每个输入包含 1 个测试用例,即一个不超过 1000 位的正整数 N。
    //
    //输出格式:
    //对 N 中每一种不同的个位数字,以 D:M 的格式在一行中输出该位数字 D 及其在 N 中出现的次数 M。要求按 D 的升序输出。
    //
    //输入样例:
    //100311
    //输出样例:
    //0:2
    //1:3
    //3:1

    C:

    #include <stdio.h>
    
    int main(int argc, const char * argv[]) {
        char c;
        int num[10] = {0};
        while((c = getchar()) != '\n')
            num[c - '0']++;
        
        for (int i = 0; i < 10; i++) {
            if (num[i] != 0) {
                printf("%d:%d\n", i, num[i]);
            }
        }
        return 0;
    }
    

    思路:1.1000位的正整数,所以要做字符串处理,不能用int定义
       2.统计0-9数字在字符串中出现的次数,因此定义一个数组存放0-9出现的次数,输出按D的升序输出,因此次数M大于0的输出次数D:M
       3.处理字符时与'0'的差即为十进制中数字大小

    相关文章

      网友评论

          本文标题:1021

          本文链接:https://www.haomeiwen.com/subject/oopcgftx.html