整数的位数可能各不相同,给定一组整数,请按位数分类统计,输出每种位数的出现次数。c++
时间: 2023-05-12 22:03:43 浏览: 158
以下是一个简单的 C 代码实现:
#include <stdio.h>
int main() {
int nums[10] = {0}; // 用来记录每种位数的出现次数
int num; // 输入的整数
while (scanf("%d", &num) != EOF) {
int digits = 0; // 记录当前整数的位数
while (num != 0) {
digits++;
num /= 10;
}
nums[digits]++;
}
for (int i = 1; i <= 9; i++) {
printf("%d 位数的整数出现次数为:%d\n", i, nums[i]);
}
return 0;
}
这个程序首先定义了一个长度为 10 的数组 nums,用来记录每种位数的出现次数。然后通过一个 while 循环,不断读入输入的整数,对于每个整数,通过一个内部的 while 循环计算出它的位数,然后将对应的 nums 数组元素加 1。最后再通过一个 for 循环输出每种位数的整数出现次数。
相关问题
整数的位数可能各不相同,给定一组整数,请按位数分类统计,输出每种位数的出现次数。用C++
可以使用 `map` 数据结构来实现,将每个整数的位数作为键,出现次数作为值,进行统计和存储。
以下是示例代码:
```c++
#include <iostream>
#include <map>
using namespace std;
int main() {
int n, num;
map<int, int> digitCount; // 用于存储每种位数的出现次数
cin >> n;
for (int i = 0; i < n; i++) {
cin >> num;
int digits = 0;
while (num != 0) {
digits++;
num /= 10;
}
digitCount[digits]++;
}
for (auto it = digitCount.begin(); it != digitCount.end(); it++) {
cout << it->first << "位数:" << it->second << "个" << endl;
}
return 0;
}
```
输入格式为:
```
整数个数
整数1 整数2 ... 整数n
```
输出格式为:
```
x位数:y个
```
其中 x 为位数,y 为该位数出现的次数。
现有n个整数,将其中个位数为k的数进行累加求和。c++完整代码
以下是一个简单的C++代码示例,用于计算给定整数数组中个位数为k的数的总和:
```cpp
#include <iostream>
int main() {
int n, k;
std::cin >> n >> k;
int sum = 0;
for (int i = 0; i < n; i++) {
int x;
std::cin >> x;
if (x % 10 == k) {
sum += x;
}
}
std::cout << sum << std::endl;
return 0;
}
```
该程序首先从标准输入中读取整数n和数字k,然后在循环中读取n个整数,并将它们的个位数与k进行比较。如果它们的个位数等于k,则将它们的值加到sum中。最后,程序输出sum的值。