c – 计算整数区间(或int数组)中每个数字的出现次数
发布时间:2020-12-16 09:22:03 所属栏目:百科 来源:网络整理
导读:使用循环,如何找到整数区间[n,m]中每个数字的出现? 例如: INPUT n,m = [19,23] = 19,20,21,22,23 输出应该是: 0次出现:1次 1次出现:2次 2次出现:5次 3次出现:1次等 #include iostreamusing namespace std;int main(){ int i,j,z,count,n,m;cin n m;fo
使用循环,如何找到整数区间[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"; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |