gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 20:20:12 34 4
gpt4 key购买 nike

使用循环,如何找到整数区间 [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/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com