给定一个 k 位整数 n=d k−1 10 k−1 +⋯+d 1 10 1 +d 0 (0≤d i ≤9, i=0,⋯,k−1, d k−1 >0),请编写程序统计每种不同的个位数字出现的次数。例如:给定 n=100311,则有 2 个 0,3 个 1,和 1 个 3。 输入格式: 每个输入包含 1 个测试用例,即一个不超过 1000 位的正整数 n。 输出格式: 对 n 中每一种不同的个位数字,以 d:m 的格式在一行中输出该位数字 d 及其在 n 中出现的次数 m。要求按 d 的升序输出。
时间: 2023-05-31 09:18:09 浏览: 265
### 回答1:
思路:遍历整个数字,统计每个数字出现的次数,最后按照数字的升序输出即可。
Python代码:
n = input()
count = [] * 10 # 初始化每个数字出现的次数为
for i in n:
count[int(i)] += 1 # 统计每个数字出现的次数
for i in range(10):
if count[i] != :
print('{}:{}'.format(i, count[i])) # 按照数字的升序输出
### 回答2:
思路:
此题需要统计每个数字出现的次数,需要使用数组进行记录,数组下标表示数字,数组值表示该数字出现的次数。
具体实现步骤:
1. 定义一个大小为10的数组,用于记录0~9出现的次数。
2. 遍历输入的数的每个位上的数字,将其记录在数组中相对应下标的值中。
3. 输出结果,按照数字的升序输出,格式为d:m。
代码实现:
### 回答3:
题目描述
给定一个 k 位整数 n=d k−1⋯10k−1⋯d 1⋅10+d0 (0≤di≤9,i=0,…,k−1,dk−1>0),请编写程序统计每种不同的个位数字出现的次数。
例如:给定 n=100311,则有 2 个 0,3 个 1,和 1 个 3。
输入格式:
每个输入包含 1 个测试用例,即一个不超过 1000 位的正整数 n。
输出格式:
对 n 中每一种不同的个位数字,以 d:m 的格式在一行中输出该位数字 d 及其在 n 中出现的次数 m。要求按 d 的升序输出。
思路
用一个桶来记录数字出现的次数,桶的下标即为数字,桶的值即为该数字出现的次数;
从高位向低位扫描数字,提取出当前位数字,并将当前数字对应的桶加一即可;
最后输出桶的结果即可。
C++代码
阅读全文