c语言如何统计整数区间内每个数字出现的频率?
- 内容介绍
- 文章标签
- 相关推荐
本文共计442个文字,预计阅读时间需要2分钟。
使用循环,如何找到整数区间 [n, m] 中每个数字的出现次数?
例如:输入 n, m=[19, 23]输出:0次出现:1次,1次出现:2次,2次出现:1次,3次出现:0次,... 等
步骤:
1.初始化一个长度为 m - n + 1 的列表,用于存储每个数字的出现次数。
2.遍历区间 [n, m] 中的每个数字。
3.对于每个数字,将其与列表中的数字进行比较。
4.如果找到匹配,则相应位置的增加计数。
5.输出每个数字的出现次数。
使用循环,如何找到整数区间[n,m]中每个数字的出现?例如:
> INPUT 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"; }
本文共计442个文字,预计阅读时间需要2分钟。
使用循环,如何找到整数区间 [n, m] 中每个数字的出现次数?
例如:输入 n, m=[19, 23]输出:0次出现:1次,1次出现:2次,2次出现:1次,3次出现:0次,... 等
步骤:
1.初始化一个长度为 m - n + 1 的列表,用于存储每个数字的出现次数。
2.遍历区间 [n, m] 中的每个数字。
3.对于每个数字,将其与列表中的数字进行比较。
4.如果找到匹配,则相应位置的增加计数。
5.输出每个数字的出现次数。
使用循环,如何找到整数区间[n,m]中每个数字的出现?例如:
> INPUT 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"; }

