关于9的个数问题

前言:

本篇博客将带大家了解如何计算1~100所有的数里面有几个9计算1~100内有几个数带9

目录

计算1~100所有的数里面有几个9

计算1~100内有几个数带9


计算1~100所有的数里面有几个9

思路一:

想要求1~100里所有的数里有几个9,无非就是个位上的个数9加上十位上9的个数。(假设我们现在正在判断的那个数是n)于是我们可以先通过n%10来取出n的个位,再和9比较。取完模以后可以通过n/10来拿到十位上的数字,再和9去比较。当n=100的时候也是一样的。

public class Main {
    public static void main(String[] args) {
        int i=9;
        int count=0;
        for (int j = 9; j <=100 ; j++) {
            int b=j;
            //因为j要一直往下加到100,
            //所以在while循环内的这些操作都不能直接对进行,
            //会改变j,只能再创建一个变量
            while(b!=0){
                if(b%10==i){
                    count++;
                }
                b=b/10;
            }
        }
        System.out.println(count);
    }
}

结果:

思路二:

第二种思路和第一种思路大体没有太大的差别,只是方法的写法会更快。直接通过%10来得到各位上的数字,通过/10来得到十位上的数字,然后再和9进行比较。

public static Main{
    public static void main(String[] args) {
        int count = 0;
        for (int i = 1; i <=100 ; i++) {
            if(i%10==9){
                count++;
            }
            if(i/10==9){
                count++;
            }
        }
        System.out.println(count);
    }
}

结果:


计算1~100内有几个数带9

思路:

本题解法是在上题的思路二中稍稍做了一些改动,对于个位和十位都是9(也就是99)的数只加了一次(上题一个9加一次),话不多说,直接上代码。

public static Main{
   public static void main3(String[] args) {
        int count = 0;
        for (int i = 1; i <=100 ; i++) {
            if(i%10==9){
                count++;
            }else if(i/10==9){//else  if 意味着一个数只能算一次
                count++;
            }
        }
        System.out.println(count);
    }
}

效果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值