PAT 乙级1021 JAVA实现 个位数统计

题目描述:

给定一个k位整数N=dk−1∗10k−1+...+d1∗101+d0(0<=di<=9,i=0,...,k−1,dk−1>0)N=dk−1∗10k−1+...+d1∗101+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

基本思路:

(1)以count [ ] 数组来记录0到9出现的次数,数组下标为0到9之间的数字,值即为出现次数

(2)获取到输入的字符串 s 后,调用s.length得到长度,遍历每一位,s.charAt(i)-'0'  是先获取到此时该位的字符,再将其转为数字,count[ s.charAt(i)-'0'] 即为该数字出现的次数

代码走起~

package pat;

import java.util.Scanner;

//个位数统计
public class B1021 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);
		String s = sc.next();
		int count[] = new int[10];
		int length = s.length();
		for (int i = 0; i < length; i++) {
			count[s.charAt(i) - '0']++;
		}

		// 输出
		for (int i = 0; i < 10; i++) {
			if (count[i] != 0) {
				System.out.println(i + ":" + count[i]);
			}
		}
	}

}
发布了12 篇原创文章 · 获赞 11 · 访问量 726

猜你喜欢

转载自blog.csdn.net/weixin_43156201/article/details/104104368