【Java练习】求某一个数字在1-100中出现的次数

学习目标:

目标:熟练运用 Java所学知识


题目内容:

本文内容:使用Java求某一个数字在1-100中出现的次数


实现思想:

1.想要找到某个数字就得将数字分解,在与想要求的数字做比较,如果相等则count++;
2.1-100之间分为三种,只有个位数,有个位数和十位数,有百位数十位数个位数的三种,
3.使用num%10可以直接求出个位数,使用num/10%10可以得到十位数,使用num/10/10%10可以得到百位数,但需要注意的是,如果是1-9使用num/10%10得到的必是0;所以对于num/10%和10num/10/10%10的使用必须加限定条件既 num / 10 != 0(具体的请看一下代码,比较直观)

本文末尾对frequency(int i)方法进行了优化,也就是对判断次数进行了优化,变得更加简洁有效,你们可以直接看优化后的代码

实现代码:

public class practice {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入要查询次数的数字:");
        int i = scanner.nextInt();
        System.out.println("1-100中" + i + "出现了" + frequency(i) + "次");
    }


    public static int frequency(int i) {
        int count = 0;
        for (int j = 1; j <= 100; j++) {

            if (j % 10 == i) count++;
            if (j / 10 != 0)//不只有个位数
             {
                int m1 = j / 10;
                if (m1 % 10 == i) count++;
                if (m1 / 10 != 0)//不只有个位数和十位数
                 {
                    int m2 = m1 / 10;
                    if (m2 % 10 == i) count++;
                }
            }
        }
        return count;
    }
}
//运行结果
请输入要查询次数的数字:
9
1-1009出现了20

代码优化:

对frequency(int i)方法进行了优化 ,能让你们看的更加清楚

public class practice {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入要查询次数的数字:");
        int i=scanner.nextInt();
        System.out.println("1-100中"+i+"出现了"+frequency(i)+"次");

    }


    public static int frequency(int i) {
        int count = 0;
        for (int j = 1; j <= 100; j++) {
            int m=j;
        while (m!= 0) {
            if (m%10 == i){count++;}
            m=m/10;
        }

    }
        return count;
}

}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值