文章目录
题目解读
一个整数如果按从低位到高位的顺序,奇数位(个位、百位、万位......)上的数字是奇数,偶数位(十位、千位、十万位......)上的数字是偶数,我们就称之为"好数"。
思路
可以利用奇数位上的数字是奇数,偶数位上的数字是偶数来进行判定
定义变量来记录当前位,奇数位是奇数,奇数位上的数字也是奇数,其%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
🌻编写本篇文章目的是笔者想以输出的形式进行学习,顺便记录学习点滴🌻
🌹 如果本篇文章对你有帮助的话那就点个赞吧👍🌹
😇 本篇文章可能存在多处不足,如有修改意见,可以私信或者评论我哦 😇