1021 个位数统计

给 定 一 个 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 。 给定一个 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。 kN=dk110k1++d1101+d0(0di9,i=0,,k1,dk1>0)N=100311203113

输入格式:

每个输入包含 1 个测试用例,即一个不超过 1000 位的正整数 N。

输出格式:

对 N 中每一种不同的个位数字,以 D:M 的格式在一行中输出该位数字 D 及其在 N 中出现的次数 M。要求按 D 的升序输出。

输入样例:

100311

输出样例:


0:2
1:3
3:1

题解一:


import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String str = scanner.next();
        int Number[] = new int[10];
        for (int i = 0; i < str.length(); i++) {
            int n = str.charAt(i) - '0';
            Number[n]++;
        }
        for (int i=0;i<10;i++){
            if(Number[i] == 0)
                continue;
            System.out.println(i + ":" + Number[i]);
        }
    }
}

题解二:

import java.util.*;
public class Main {
    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        HashMap<Integer,Integer> hashMap = new HashMap<>();
        String str = scanner.next();
        for(int i=0;i<str.length();i++){
            int n = str.charAt(i) - '0';
            if(hashMap.containsKey(n)){
                hashMap.put(n,hashMap.get(n)+1);
            }
            else {
                hashMap.put(n,1);
            }
        }

        for(Map.Entry<Integer, Integer> i:hashMap.entrySet()){
            System.out.println(i.getKey() + ":" + i.getValue());
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值