基础------3.门牌制作

 题目:

小蓝要为一条街的住户制作门牌号。

这条街一共有2020位住户,门牌号从1到2020编号。

小蓝制作门牌的方法是先制作0到9这几个数字字符,最后根据需要将字符粘贴到门牌上,例如门牌1017需要依次粘贴字符1、0、1、7,即需要1个字符0,2个字符1,1个字符7。

请问要制作所有的1到2020号门牌,总共需要多少个字符2?

 分析:
1到2020号门牌,个位的 2,十位的 2,百位的 2,千位的 2 的2 个数累计:

我们如果只用for循环去判断的话,个位、十位、百位、千位同时存在时判断多次
不能判断该数是几位数构成。需要分为两位数,三位数,四位数的判断在写
1)if(x%10==2)
    count++;
x/10;
if(x%10==2)
    count++;
....

所以我们用for循环去对1到2020进行循环,再用while循环去判断1到2020之间的数
其中,我们发现一个数无论是百位,还是千位,只要先对这个数取余再除以10,就可以去掉它的最低位
如:    2022%10=2(+1)    2022/10=202    
    202%10=2(+2)    202/10=20    
    20%10=0        20/10=2        2%10=2(+3)

 

public class menpai {
    public static void main(String[] args) {
        int count=0;
        for (int i = 1; i <=2020; i++) {
            int x=i;
            while(x>0)
            {
                if(x%10==2)
                    count++;
                x=x/10;
            }
        }
        System.out.println(count);
    }
}

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值