c++ - 计算整数区间(或 int 数组)中每个数字的出现次数

标签 c++

使用循环,如何找到整数区间 [n, m] 中每个数字的出现次数?

例如:

  • 输入 n,m = [19, 23] = 19, 20, 21, 22, 23

  • 输出应该是:

0次出现:1次

出现1次:2次

2次出现:5次

出现 3 次:1 次等

#include <iostream>
using namespace std;
int main()
{
 int i, j, z, count, n, m;
cin >>n >>m;

for(int i=0; i<10; i++)   // LOOP FOR DIGITS
    {
    cout << i <<"occurences: ";

    count=0;    
    for(int j=n; j<m; j++)  // LOOP INTEGER INTERVAL  
        {
        while (z!=0)  
            {
                z = j % 10;  // LAST DIGIT OF FIRST NUMBER IN INTERVAL
                if (z == i) count++;
                z /= 10;        
            }
        }
    cout << count <<" times"<< endl;
    }
}

我的代码为每个数字返回 0 次,错误在哪里?

最佳答案

您不需要在范围内循环 10 次。

   int n, m;
   cin >> n >> m;

   counts = int[10];
   for(int i = 0; i < 10; ++i) {
      counts[i] = 0;
   } 

   for(int j = n; j <= m; j++) {
            int z = j; 
            do {
                int digit = z % 10;  // LAST DIGIT OF FIRST NUMBER IN INTERVAL
                counts[digit]++;
                z /= 10;        
            } while (z != 0);
   }

   for(int i = 0; i < 10; ++i) {
      cout << i << " occurrences " << counts[i] << " times";
   } 

关于c++ - 计算整数区间(或 int 数组)中每个数字的出现次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52899359/

相关文章:

c++ - 矩形重叠的数据结构

c++ - 从字符串列表的列表的映射中获取字符串

C++ 头文件和类文件 - undefined reference

c++ - Visual Studio <AtlImplementationDetails> 智能感知错误

c++ - C/C++ Wavelet 库,非 GPL

c++ - 两种模板类型的 sizeof,当两者都派生自一个基类时

c++ - 模板函数错误, "no matching function for call to..."

c++ - ')' 标记之前的预期主表达式(需要 "template"消歧器)

c++ - 模板类中单个方法的模板特化

c++ - 如何创建指向另一个列表中对象的指针列表?