给定一个整数n,统计每种不同的个位数字出现的次数。例如,给定n=100811,则有2个0,3个1,1个8。
时间: 2023-05-31 08:18:47 浏览: 540
### 回答1:
可以使用一个长度为10的数组,记录每个数字出现的次数。遍历整数n的每一位,将对应的计数器加1。最后输出每个数字出现的次数即可。具体实现如下:
```python
def count_digits(n):
count = [] * 10
while n > :
digit = n % 10
count[digit] += 1
n //= 10
for i in range(10):
if count[i] > :
print(f"{i}: {count[i]}")
```
示例:
```python
>>> count_digits(100811)
: 2
1: 3
2:
3:
4:
5:
6:
7:
8: 1
9:
```
### 回答2:
这道题目主要涉及到数字的位数拆分和计数方法。首先,我们可以将给定的整数n拆分为一个一个的数字,再对每个数字进行统计。
具体的操作步骤如下:
1. 将整数n转化为字符串类型,方便进行拆分操作;
2. 遍历字符串n中的每一个数字,获取其个位数字,例如通过n % 10的方式获取;
3. 使用一个字典类型的变量来记录每种不同的个位数字出现的次数。如果该数字已经在字典中出现过,则将计数器加1;否则,在字典中新增该数字并将计数器初始化为1;
4. 遍历完成后,字典中存储了不同个位数字出现的次数。可以按照字典键值对应的数字从小到大输出每一种数字以及出现的次数。
代码实现如下:
```python
def count_digit_num(n):
# 将整数n转化为字符串类型
n_str = str(n)
# 初始化一个字典,用于记录每种不同的个位数字出现的次数
digit_count = {}
# 遍历字符串n中的每一个数字
for char in n_str:
# 获取数字的个位数字
digit = int(char) % 10
# 在字典中记录该数字出现的次数
if digit_count.get(digit) is None:
digit_count[digit] = 1
else:
digit_count[digit] += 1
# 按照数字从小到大输出每一种数字以及出现的次数
for digit in sorted(digit_count.keys()):
print("数字{}出现了{}次".format(digit, digit_count[digit]))
```
这段代码可以直接调用函数count_digit_num(n),传入一个整数n即可计算出每种不同的个位数字出现的次数。
### 回答3:
题目要求我们计算一个整数中每个数字出现的次数。
我们可以使用一个长度为10的数组来记录数字0-9出现的次数,数组的每个位置分别表示数字0-9。遍历整数n的每一位数字,将对应位置的计数器+1,最后输出数组中所有不为0的数和对应的计数器即可。
下面是代码实现:
```
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
int count[10] = {0}; // 计数数组,初始全部为0
while (n > 0) {
count[n % 10]++;
n /= 10;
}
for (int i = 0; i < 10; i++) {
if (count[i] > 0) {
cout << "数字" << i << "出现了" << count[i] << "次" << endl;
}
}
return 0;
}
```
以上代码将输入的整数n逐位拆分,并在计数数组中对应的位置+1。最后遍历计数数组,输出不为0的数字及其出现的次数。
例如,输入n=100811,输出为:
数字0出现了2次
数字1出现了3次
数字8出现了1次
阅读全文