前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PTA- - -个位数统计(C语言)

PTA- - -个位数统计(C语言)

作者头像
用户10216580
发布2024-03-13 08:47:56
1360
发布2024-03-13 08:47:56
举报
文章被收录于专栏:一叶知秋一叶知秋

Hello,好久没更新啦,今天给大家讲解一下PTA平台上面的“个位数统计”这道题吧~

题目是要统计一个数字每个位上数字出现的次数。下面是一个解决方案的思路和相应的 C 语言代码:

思路:

  1. 初始化一个大小为10的数组,用于计数每个数字(0-9)出现的次数。
  2. 读取输入的数字N作为字符串,这样可以处理超长数字并逐个字符检查。
  3. 遍历字符串,将每个字符转换为整数索引,并在计数数组对应索引处递增。
  4. 遍历计数数组,按照题目要求的格式打印出现次数不为0的数字及其计数。
代码语言:javascript
复制
#include <stdio.h>
#include <string.h>

int main() {
    char N[1001]; // 由于数字可能非常大,我们将其作为字符串读入
    int count[10] = {0}; // 初始化计数数组
    scanf("%s", N); // 读入数字字符串

    // 遍历数字字符串
    for (int i = 0; N[i] != '\0'; i++) {
        count[N[i] - '0']++; // 更新计数数组,'0'-'0' = 0, '1'-'0' = 1, ... '9'-'0' = 9
    }

    // 输出每个数字及其出现的次数
    for (int i = 0; i < 10; i++) {
        if (count[i] > 0) { // 只有当某个数字出现次数大于0时才打印
            printf("%d:%d\n", i, count[i]);
        }
    }

    return 0;
}

上面的代码首先读取输入的整数N作为一个字符串。之所以用字符串而不是整数类型,是因为题目提到N可以非常大,超过普通整数类型的存储范围。然后代码中使用count数组对每个出现的数字进行计数。最后,代码遍历count数组并打印出现次数。

您可以使用这个代码,并根据您编程环境的需要进行必要的调整。然后编译并运行以检查它是否符合题目要求。希望能够帮助到小伙伴提供更多的解题思路哦,关注叶秋学长不迷路,学长带你们上高速💕

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-03-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档