01枚举
1.好数
问题描述
一个整数如果按从低位到高位的顺序,奇数位 (个位、百位、万位 ⋯⋯ ) 上的数字是奇数,偶数位 (十位、千位、十万位 ⋯⋯ ) 上的数字是偶数,我们就称之为 “好数”。
给定一个正整数 NN,请计算从 1 到 NN 一共有多少个好数。
输入格式
一个整数 NN。
输出格式
一个整数代表答案
import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改
//https://www.lanqiao.cn/problems/19709/learning/?page=1&first_category_id=1&problem_id=19709public class Main {//检查一个数是否是好数//即奇数位不能是偶数,偶数位不能是奇数public static boolean check(int x){int cnt = 1;//位数的计数器while(x != 0){int t = x % 10; //获取当前的最低位数if(cnt % 2 == 1){//奇数位if(t % 2 == 0) return false; //奇数位不能是偶数}else{//偶数位if(t % 2 == 1) return false; //偶数位不能是奇数}cnt ++; //更新下一位x = x / 10; //去掉最低位}return true; //满足条件则为好数}public static void main(String[] args) {Scanner scan = new Scanner(System.in);//在此输入您的代码...int n = scan.nextInt();int num = 0; //记录好数的个数for(int i = 1; i <= n; i++){if(check(i)) num++;}System.out.print(num);scan.close();}
}