好數
- 問題描述
- 代碼解釋
- 代碼
好數
問題描述
一個整數如果按從低位到高位的順序,奇數位 (個位、百位、萬位 ? ) 上的數字是奇數,偶數位 (十位、千位、十萬位 ? ) 上的數字是偶數,我們就稱之為 “好數”。
給定一個正整數 N,請計算從 1 到 N 一共有多少個好數。
輸入格式
一個整數 N。
輸出格式
一個整數代表答案。
樣例輸入 1
24
樣例輸出 1
7
樣例輸入 2
2024
樣例輸出 2
150
樣例說明
對于第一個樣例,24 以內的好數有 1、3、5、7、9、21、23,一共 7 個
評測用例規模與約定
對于 10% 的評測用例,1≤N≤100
對于 100% 的評測用例,1≤N≤10 7
代碼解釋
good函數:該函數用于判斷一個數是否為好數。通過逐位檢查,奇數位必須為奇數,偶數位必須為偶數。若某位不符合條件,立即返回0,否則返回1。
主函數:讀取輸入N,遍歷從1到N的每個數,調用good函數檢查是否為好數,統計符合條件的好數個數并輸出。
該方法雖然簡單,但在給定的問題規模下能夠高效完成任務
代碼
import java.util.Scanner;public class Main {public static int good(int a){int t=1;while(a!=0){int x=a%10;if(t%2==1){if(x%2==0)return 0;}else{if(x%2==1)return 0;}a/=10;t++;}return 1;}public static void main(String[] args){Scanner sc=new Scanner(System.in);int n=sc.nextInt();//n<=10^7int count=0;for(int i=1;i<=n;i++){if(good(i)==1){count++;}}System.out.println(count);}
}