题目描述
给定一个K位整数
N
=
d
k
−
1
1
0
k
−
1
+
d
1
1
0
1
+
d
0
(
0
<
=
d
i
<
=
9
,
i
=
0
,
.
.
.
,
k
−
1
,
d
k
−
1
>
0
)
N = d_{k-1}10^{k-1} + d_110^1 + d_0(0 <= d_i <= 9, i = 0,...,k - 1, d_{k - 1} > 0)
N=dk−110k−1+d1101+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 的升序输出。
输入样例:
100311
输出样例:
0:2
1:3
3:1
代码示例(Java)
import java.io.*;
/**
* @create-date 2019-06-10 21:49
*/
public class Main21 {
public static void main(String[] args) throws IOException {
// 定义输入对象
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
// 定义输出对象
PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));
// 获取到输入
String number = in.readLine();
// 定义一个 10 长度的整型数组
int[] nums = new int[10];
// 计数每一种数字的个数
for (int i = 0; i < number.length(); i++)
nums[number.charAt(i) - '0']++;
// 按格式打印输出结果
for (int i = 0; i < nums.length; i++)
if (nums[i] != 0) {
out.println(i + ":" + nums[i]);
out.flush();
}
}
}