专栏首页卡尼慕1021 个位数统计 (15 分)

1021 个位数统计 (15 分)

1021 个位数统计 (15 分)

给定一个 k 位整数 N=dk−110k−1+⋯+d1101+d0 (0≤di≤9, i=0,⋯,k−1, dk−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

我的代码

// 1021 个位数统计 (15 分).cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>
#include <string>

using namespace std;
int main(){
    //输入
    string num;
    cin >> num;
    int a[10] = { 0 };
    for (int i = 0; i < num.size(); i++) {
        if (num[i] - '0' == 0)
            a[0]++;
        if (num[i] - '0' == 1)
            a[1]++;
        if (num[i] - '0' == 2)
            a[2]++;
        if (num[i] - '0' == 3)
            a[3]++;
        if (num[i] - '0' == 4)
            a[4]++;
        if (num[i] - '0' == 5)
            a[5]++;
        if (num[i] - '0' == 6)
            a[6]++;
        if (num[i] - '0' == 7)
            a[7]++;
        if (num[i] - '0' == 8)
            a[8]++;
        if (num[i] - '0' == 9)
            a[9]++;
    }
    for (int i = 0; i < 10; i++) {
        if (a[i] >= 1) {
            cout << i << ":" << a[i];
            if (i != 9)
                cout << endl;
        }


    }
    return 0;
}

看了别人的代码更改如下:

// 1021 个位数统计 (15 分).cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>
#include <string>
using namespace std;
int main(){
    //输入
    string num;
    cin >> num;
    int a[10] = { 0 };
    for (int i = 0; i < num.size(); i++) 
        a[num[i] - '0']++;
    for (int i = 0; i < 10; i++) {
        if (a[i] >= 1) {
            cout << i << ":" << a[i];
            if (i != 9)
                cout << endl;
        }
    }
    return 0;
}

思路没什么问题,还是。。。ummm。。代码简洁之道。

本文分享自微信公众号 - 卡尼慕(gh_40138f7dc7d3),作者:卡尼幕

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-09-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 1465: [蓝桥杯2019初赛]特别数的和

    小明对数位中含有2、0、1、9 的数字很感兴趣(不包括前导0)。在1到40中这样的数包括1、2、9、10 至32、39 和40,共28 个,他们的和是574。请...

    可爱见见
  • 1019 数字黑洞 (20 分)

    给定任一个各位数字不完全相同的 4 位正整数,如果我们先把 4 个数字按非递增排序,再按非递减排序,然后用第 1 个数字减第 2 个数字,将得到一个新的数字。一...

    可爱见见
  • 1036 跟奥巴马一起编程 (15 分)

    美国总统奥巴马不仅呼吁所有人都学习编程,甚至以身作则编写代码,成为美国历史上首位编写计算机代码的总统。2014 年底,为庆祝“计算机科学教育周”正式启动,奥巴马...

    可爱见见
  • leetcode-367-Valid Perfect Square

    chenjx85
  • 【leetcode刷题】T203-完美数

    https://leetcode-cn.com/problems/perfect-number/

    木又AI帮
  • hdu1059

    @坤的
  • 剑指OFFER之从1到n中出现1的次数(九度OJ1373)

    题目描述: 亲们!!我们的外国友人YZ这几天总是睡不好,初中奥数里有一个题目一直困扰着他,特此他向JOBDU发来求助信,希望亲们能帮帮他。问题是:求出1~13的...

    用户1154259
  • JAVA递归

         //斐波那契      // num 第几个数      // search(num - 1)临近的第一个+move(num - 2)临近的...

    用户2192970
  • 算24

    解题思路: n个数算24,必有两个数要先算。这两个数算的结果,和剩余n-2个数,就构成了n-1个数求24的问题。枚举先算的两个数,以及这两个数的运算方式。n...

    AI那点小事
  • 397. 最长上升连续子序列

    给定一个整数数组(下标从 0 到 n-1, n 表示整个数组的规模),请找出该数组中的最长上升连续子序列。(最长上升连续子序列可以定义为从右到左或从左到右的序列...

    和蔼的zhxing

扫码关注云+社区

领取腾讯云代金券