博客
关于我
L1-003 个位数统计 (15分)
阅读量:556 次
发布时间:2019-03-09

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

为了解决这个问题,我们需要统计给定的整数中每种不同个位数字出现的次数。由于该整数可能有1000位,因此传统的方法无法直接应用。我们需要一种有效的方法来处理如此大的数字。

方法思路

为了处理非常大的整数,我们可以将其作为字符输入逐个处理。具体步骤如下:

  • 初始化一个大小为10的数组,记录每个数字(0到9)出现的次数。
  • 读取输入字符,直到遇到换行符,每读取一个字符就对应整数中的一个数字。
  • 将字符转换为数字,并更新对应的计数器。
  • 遍历计数器,输出每个数字及其出现次数。
  • 解决代码

    #include 
    using namespace std;int main() { int count[10] = {0}; char n; // 读取每一位数字,直到遇到换行符 while ((n = getchar()) != '\n') { count[n - '0']++; } // 输出结果,按数字升序排列 for (int i = 0; i < 10; ++i) { if (count[i] != 0) { cout << i << ":" << count[i] << endl; } } return 0;}

    代码解释

  • 读取字符:我们使用getchar()读取字符,直到遇到换行符。每一位数字对应一个字符,例如数字'3'对应字符'3'。
  • 更新计数器:将字符转换为整数(n - '0'),然后增加对应位置的计数器。
  • 输出结果:遍历计数器,输出每个数字及其出现次数,按数字升序排列。
  • 这种方法有效地处理了大到1000位的整数,并确保了结果的正确性和效率。

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

    你可能感兴趣的文章
    大话目标检测经典模型(RCNN、Fast RCNN、Faster RCNN)————未看完
    查看>>
    无法打开文件“opencv_world330d.lib”的解决办法
    查看>>
    error LNK2019: 无法解析的外部符号 _main该符号在函数___tmainCRTStartup 中被引用
    查看>>
    maven项目出现 Missing artifact jdk.tools:jdk.tools:jar:1.7
    查看>>