博客
关于我
PAT
阅读量:522 次
发布时间:2019-03-08

本文共 852 字,大约阅读时间需要 2 分钟。

为了统计给定k位整数N中每种个位数字的出现次数,我们可以将该数字作为字符序列处理,并遍历其中的每个字符,统计每个数字出现的次数。以下是详细的解决方案:

方法思路

  • 输入处理:将输入的整数作为字符数组读取,这样可以有效处理非常大的数(超过整数类型的范围)。
  • 统计数组初始化:创建一个长度为10的数组,索引范围0-9,分别统计0到9这10个数字的出现次数。
  • 遍历字符数组:逐个字符转换为数字并更新统计数组。
  • 按顺序输出结果:按升序输出每个数字及其对应的统计次数,排除次数为0的情况。
  • 解决代码

    #include 
    int main() { char num_str[1001] = {0}; int a[10] = {0}; scanf("%s", num_str); for (int i = 0; num_str[i] != '\0'; ++i) { int num = num_str[i] - '0'; if (num >= 0 && num <= 9) { a[num]++; } } for (int j = 0; j < 10; ++j) { if (a[j] != 0) { printf("%d:%d\n", j, a[j]); } } return 0;}

    代码解释

    • 输入处理:使用scanf读取输入,将其存储在num_str数组中。num_str的长度设为1001,以应对最长1000位的输入。
    • 统计初始化:数组a长度为10,用于存储每个数字0-9的出现次数。初始化时每个位置都设为0。
    • 字符遍历:逐个字符处理,每个字符转换为数字后,更新对应的统计数组。
    • 结果输出:按顺序检查每个数字的统计次数,排除0次的情况,输出结果。

    这种方法高效且直接,能够处理非常大的整数,确保每个数字的统计准确,并按要求输出结果。

    转载地址:http://hmyiz.baihongyu.com/

    你可能感兴趣的文章
    redis集群报错:(error) CLUSTERDOWN Hash slot not served
    查看>>
    一个JAVA应用启动缓慢问题排查 --来自jdk securerandom 的问候
    查看>>
    spring-boot-2.0.3之redis缓存实现,不是你想的那样哦!
    查看>>
    httprunner学习23-加解密
    查看>>
    有道云笔记 同步到我的博客园
    查看>>
    阿里云“网红&quot;运维工程师白金:做一个平凡的圆梦人
    查看>>
    李笑来必读书籍整理
    查看>>
    vue书籍整理
    查看>>
    记Java中有关内存的简单认识
    查看>>
    http头部 Expect
    查看>>
    Hadoop(十六)之使用Combiner优化MapReduce
    查看>>
    《机器学习Python实现_10_06_集成学习_boosting_gbdt分类实现》
    查看>>
    CoreCLR源码探索(八) JIT的工作原理(详解篇)
    查看>>
    IOS开发Swift笔记16-错误处理
    查看>>
    flume使用中的一些常见错误解决办法 (地址已经使用)
    查看>>
    设计模式-创建型02-工厂模式-工厂方法模式01
    查看>>
    【Java-27】Java常见错误记录
    查看>>
    andriod 开发错误记录
    查看>>
    C语言编译错误列表
    查看>>
    看明白这两种情况,才敢说自己懂跨链! | 喵懂区块链24期
    查看>>