每日一刷——1.20——准备蓝桥杯

链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网


题目一

请统计某个给定范围[L, R]的所有整数中,数字2出现的次数。

比如给定范围[2, 22],数字2在数2中出现了1次,在数12中出现1次,在数20中出现1次,在数21中出现1次,在数22中出现2次,所以数字2在该范围内一共出现了6次。

输入描述:

输入共1行,为两个正整数L和R,之间用一个空格隔开。

输出描述:

输出共1行,表示数字2出现的次数。

示例1

输入

2 22

输出

6

示例2

输入

2 100

输出

20   

 Java代码展示:

import java.util.Scanner;

public class Main{
    public static void main(String[] args){
        int a=0,b=0,num=0;
        Scanner in =new Scanner(System.in);
        //这个是循环读取
        a =in.nextInt();
        b =in.nextInt();
        for(int i=a;i<=b;i++){
            int temp =i;
            while(temp!=0){
                int j=temp%10;
                if(j==2){
                    num++;
                }
                temp/=10;
            }
        }
        System.out.println(num);
    }
}

注意:

在 Java 中,变量 i 是 for 循环的迭代变量,它在循环的每次迭代中都会被更新。如果在 while 循环中直接使用 i 而不创建 temp 变量,会出现以下问题:

当我们在 while 循环中修改 i 的值(通过 temp /= 10),这会影响 for 循环的迭代过程。因为 i 不仅是 while 循环的控制变量,也是 for 循环的迭代变量,修改 i 会导致 for 循环的迭代逻辑出现错误。

例如,假设 i 的初始值是 123,在 while 循环中你将 i 不断除以 10 来检查其每一位数字是否为 2。第一次 while 循环结束后,i 的值就变成了 12,而不是 for 循环期望的下一个迭代值 124。这会导致 for 循环的迭代顺序被破坏,最终结果错误。

为了避免这种情况,我们应该引入了 temp 变量,将 i 的值复制给 temp,然后在 while 循环中对 temp 进行操作,这样就不会影响 for 循环的迭代过程。

题目二

题目描述:B-日历中的数字_牛客竞赛语法入门班函数与递归习题

只通过了测试样例的代码。。。

// 日中包含的   月中包含的   年中包含的

// 数字x在这个月的日期里出现了多少次。

//闰年
import java.util.Scanner;

public class Main{
    public static void main(String[] args){
        
        Scanner in =new Scanner(System.in);
        whi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值