2373. 计数
1000ms
256MB
简单
双重循环
数组
题目描述
给定一个正整数 $n$。统计从 $1$ 到 $n$ 之间(包含 $1$ 和 $n$)的所有正整数中,数字 $0, 1, 2, 3, 4, 5, 6, 7, 8, 9$ 分别出现的次数。
请按照从 $0$ 到 $9$ 的顺序,分行输出每个数字及其出现的总次数,中间用英文逗号 `,` 隔开。
输入格式
- 输入一个正整数 $n$ ($1 \le n \le 1000$)。
输出格式
- 输出共 10 行。
- 按 $0 \sim 9$ 的顺序,每行输出一个数字和该数字在 $1 \sim n$ 中出现的总次数,格式为:`数字,次数`。
样例 1
输入 (Input)
10
输出 (Output)
0,1 1,2 2,1 3,1 4,1 5,1 6,1 7,1 8,1 9,1
样例说明
- **样例说明**:
在 $1 \sim 10$ 之间的整数中:
- 数字 `0` 仅在 `10` 中出现过 1 次。
- 数字 `1` 在 `1` 和 `10` 中各出现过 1 次,共出现 2 次。
- 数字 `2` 到 `9` 均只在对应的个位数中各出现过 1 次。
- 对于 $100\%$ 的数据:$1 \le n \le 1000$。
- **算法提示**:
由于 $n$ 的范围较小 ($n \le 1000$),可以直接使用模拟法:
1. 定义一个大小为 10 的计数数组 `count`,初始化为 0。
2. 遍历 $1$ 到 $n$ 之间的每一个整数。
3. 对于当前的每个整数,通过循环取余(`num % 10`)和整除(`num /= 10`)操作,拆分出它的每一个数位,并将 `count` 数组中对应位置的计数器加 1。
4. 遍历结束后,按格式输出 `count` 数组的内容。
› 输入 stdin
CtrlShiftEnter
‹ 输出 stdout
错误 stderr
操作成功