?用循環等方式依次去枚舉所有的數字組合,一一驗證是否符合題目的要求
題目鏈接
0好數 - 藍橋云課
題目解析
好數的概念:? 數的奇數位位奇數,偶數位為偶數,就是一個好數
求輸入n里面有多少個好數
題目原理
1> 遍歷每個數
2> 每次遍歷判斷是不是好數
? ? ? ? 把這個數的每一位取出來進行判斷是奇還是偶
? ? ? ? 使用一個變量來表示奇數位還是偶數位,每次判斷完一個后就++(或者每次循環就直接++)
完整代碼
import java.util.Scanner;
// 1:無需package
// 2: 類名必須Main, 不可修改public class Main {private static int isGoodNum(int num) {int evenOr = 0;//取出每一位while (num != 0) {evenOr++;int pos = num % 10;num = num / 10;//判斷這個數奇數數位是不是奇數if ((evenOr % 2 == 1) && (pos % 2) == 0) {return 0;}if ((evenOr % 2 == 0) && (pos % 2) == 1) {return 0;}}//能夠到這里說明奇數位是奇數,偶數位是偶數return 1;}public static void main(String[] args) {Scanner scan = new Scanner(System.in);//輸入這個數int num = scan.nextInt();int count = 0;//計算好數的個數for (int i = 1; i <= num; i++) {//判斷每一個數是不是好數count += isGoodNum(i);}System.out.println(count);}
}