PTA_L1-003个位数统计

团体程序设计天梯赛-练习集
L1-003 个位数统计

题目

给定一个k(k<=1000)位整数,统计每位数字的个数

分析

  1. 整数位数较大,考虑采用字符串
  2. 判断每一位的个数,思考如何将字符串中的字符抽离出来
  3. 需要10个计数器,分别记录0-9字符的个数,采用数组

解答

第一种,使用charAt(),判断字符

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		String m = sc.nextLine();
		int[] count = {0,0,0,0,0,0,0,0,0,0};
		
		for(int i = 0; i < m.length(); i++) {
			switch(m.charAt(i)) {
				case '0': count[0]++; continue;
				case '1': count[1]++; continue;
				case '2': count[2]++; continue;
				case '3': count[3]++; continue;
				case '4': count[4]++; continue;
				case '5': count[5]++; continue;
				case '6': count[6]++; continue;
				case '7': count[7]++; continue;
				case '8': count[8]++; continue;
				case '9': count[9]++; continue;
			}
		}
		int i = 0;
		while(i<=9) {
			if(count[i]!=0) {
				System.out.println(i+":"+count[i]);
			}
			i++;
		}
		sc.close();
	}
}

第二种,采用subString(i,i+1),判断字符串

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		String m = sc.nextLine();
		int[] count = {0,0,0,0,0,0,0,0,0,0};
		System.out.println(m);
		for(int i = 0; i < m.length(); i++) {
			switch(m.substring(i, i+1)) {
				case "0": count[0]++; continue;
				case "1": count[1]++; continue;
				case "2": count[2]++; continue;
				case "3": count[3]++; continue;
				case "4": count[4]++; continue;
				case "5": count[5]++; continue;
				case "6": count[6]++; continue;
				case "7": count[7]++; continue;
				case "8": count[8]++; continue;
				case "9": count[9]++; continue;
			}
		}
		int i = 0;
		while(i<=9) {
			if(count[i]!=0) {
				System.out.println(i+":"+count[i]);
			}
			i++;
		}
		sc.close();
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值