欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 美食 > 蓝桥杯历届真题--#好数,简单模拟(C++,Java)

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

2025/2/24 23:55:27 来源:https://blog.csdn.net/mzh1213/article/details/144948563  浏览:    关键词:蓝桥杯历届真题--#好数,简单模拟(C++,Java)

文章目录

  • 题目解读
  • 思路
  • 完整代码
  • 参考


题目解读

原题连接

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

思路

可以利用奇数位上的数字是奇数,偶数位上的数字是偶数来进行判定
定义变量来记录当前位,奇数位是奇数,奇数位上的数字也是奇数,其%2运算的值应该是相同的
对于偶数位同样成立

完整代码

#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);
}
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


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

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

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


在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词