Java 门牌制作

题目

这条街一共有 20202020 位住户,门牌号从 1 到 20202020 编号
小蓝制作门牌的方法是先制作 0 到 9 这几个数字字符,最后根据需要将字符粘贴到门牌上,例如门牌 1017 需要依次
粘贴字符 1、0、1、7,即需要 1 个字符 0,2 个字符 1,1 个字符 7
要制作所有的 1 到 2020 号门牌,总共需要多少个字符 2
从1 开始到 n 号时,使用某一个字牌 number 需要的个数

解题

    /**
     * 门牌制作
     * 这条街一共有 20202020 位住户,门牌号从 1 到 20202020 编号
     * 小蓝制作门牌的方法是先制作 0 到 9 这几个数字字符,最后根据需要将字符粘贴到门牌上,例如门牌 1017 需要依次
     * 粘贴字符 1、0、1、7,即需要 1 个字符 0,2 个字符 1,1 个字符 7
     * 要制作所有的 1 到 2020 号门牌,总共需要多少个字符 2
     * 从1 开始到 n 号时,使用某一个字牌 number 需要的个数
     *
     * 要求内存低于128M 速度要 1s 以内
     * (临时内容不做存储可节省空间)
     */
    public static void doorCardNumberMake(int n, int number){
        if (n < 1){
            System.out.println("n 不能小于 1");
        }
        int sumNumber = 0;
        for (int i = 1; i <= n; i++){
            String[] split = String.valueOf(i).split("");
            for (String numberStr : split) {
               if (numberStr.equals(String.valueOf(number))){
                   sumNumber += 1;
               }
            }
        }
        System.out.println("从 1 开始到 " + n + " 需要牌号 " + number + " 共 " + sumNumber + " 个");
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值