蓝桥杯历届真题--#好数,简单模拟(C++,Java)

文章目录


题目解读

原题连接

一个整数如果按从低位到高位的顺序,奇数位(个位、百位、万位......)上的数字是奇数,偶数位(十位、千位、十万位......)上的数字是偶数,我们就称之为"好数"。

思路

可以利用奇数位上的数字是奇数,偶数位上的数字是偶数来进行判定

定义变量来记录当前位,奇数位是奇数,奇数位上的数字也是奇数,其%2运算的值应该是相同的

对于偶数位同样成立

完整代码

cpp 复制代码
#include<bits/stdc++.h>

using namespace std;

bool check(int n){
    //当前位数
    int idx=1;
    while(n){
        //取最后一位
        int num=n%10;
        if(idx % 2 != num%2)break;
        idx++;
        n/=10;
    }

    return !n;
}

int main(){
    int n;
    scanf("%d",&n);
    
    int res=0;
    for(int i=1; i<=n; i++){
        if(check(i))res++;
    }

    printf("%d",res);
}
java 复制代码
import java.util.*;

class Main{
    static Scanner sc =new Scanner(System.in);

    public static void main(String args[]) {
        int n=sc.nextInt();
        
        int res=0;
        for(int i=1; i<=n; i++){
            if(check(i))res++;
        }
        
        System.out.println(res);
    }

    static boolean check(int n){
        int idx=1;
        while(n>0){
            int num=n%10;
            if(idx%2 != num%2)break;

            idx++;
            n/=10;
        }
        if(n>0)return false;
        return true;
    }
}

参考

Acwing


🌻编写本篇文章目的是笔者想以输出的形式进行学习,顺便记录学习点滴🌻

🌹 如果本篇文章对你有帮助的话那就点个赞吧👍🌹

😇 本篇文章可能存在多处不足,如有修改意见,可以私信或者评论我哦 😇


相关推荐
XXYBMOOO17 分钟前
内核驱动开发与用户级驱动开发:深度对比与应用场景解析
linux·c++·驱动开发·嵌入式硬件·fpga开发·硬件工程
黄河滴滴18 分钟前
java系统变卡变慢的原因是什么?从oom的角度分析
java·开发语言
侠客行031719 分钟前
Mybatis二级缓存实现详解
java·mybatis·源码阅读
老华带你飞36 分钟前
农产品销售管理|基于java + vue农产品销售管理系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot·后端
Edward111111111 小时前
tomcat_servlet
java·servlet·tomcat
短剑重铸之日2 小时前
SpringBoot声明式事务的源码解析
java·后端·spring·springboot
李白的粉2 小时前
基于springboot的银行客户管理系统(全套)
java·spring boot·毕业设计·课程设计·源代码·银行客户管理系统
JIngJaneIL2 小时前
基于springboot + vue房屋租赁管理系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot·后端
努力的小南2 小时前
Java字节码文件常量池索引两个问题
java·常量池·字节码文件·黑马jvm字节码文件常量池索引
期待のcode2 小时前
Java的抽象类和接口
java·开发语言