统计不同个位数出现的次数

题目描述:
  给定一个k位整数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

思路:

  首先被好长的公式给吓到了哎!!!但是读完题,它的意思就是给一个数让你统计这个数中不同个位数出现的次数,这个记次数的思路很常见的,就是把给定的数字化为一个个字符,把这些字符存放到list中,每喷爱国到一个相同的数字值就加1,最后将list集合输出

 输入描述:

一个不超过1000位的正整数N

输出描述:

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

示例:

输入199003

输出:

0:2

1:1

3:1

9:2

代码展示:

package com.bittech;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

/**
 * package:com.bittech
 * Description:NumCounts
 * @date:2019/6/3
 * @Author:weiwei
 **/
public class NumCounts {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入数字: ");
        String N = sc.next();
        char [] chars = N.toCharArray();
        /**
         * 创建list,10个item(0-9),每个item得值表示数字的个数,
         */
        List<Integer> list = new ArrayList<>();
        for(int i =0;i<10;i++){
            list.add(0);//初始化为0
        }
        for(int i = 0;i<chars.length;i++){
            //每次遇到一个数字,数字就加1
            list.set(chars[i]-'0',list.get(chars[i]-'0')+1);
        }
        for(int i =0;i<list.size();i++){
            if(list.get(i)>0){
                System.out.println(i+":"+list.get(i));
            }
        }
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_43224539/article/details/90751193