題目描述
一個整數如果按從低位到高位的順序,奇數位(個位、百位、萬位……)上的數字是奇數,偶數位(十位、千位、十萬位……)上的數字是偶數,我們就稱之為“好數”。
給定一個正整數?N,請計算從?1?到?N?一共有多少個好數。
輸入格式
一個整數?N。
輸出格式
一個整數代表答案。
輸入輸出樣例
輸入 #1
24
輸出 #1
7
輸入 #2
2024
輸出 #2
150
說明/提示
樣例 1 解釋
24?以內的好數有?1,3,5,7,9,21,23,一共?7?個。
數據規模與約定
- 對于?10%?的測試數據,1≤N≤100。
- 對于全部的測試數據,1≤N≤
。
解答:使用數位
個位為0,十位為1,逐漸增加,這樣數位%2為0,就是奇數位
#include <iostream>
using namespace std;
bool isGoodNumber(int num) {int digitPosition = 0; while (num > 0) {int digit = num % 10;if ((digitPosition % 2 == 0 && digit % 2 != 1) || (digitPosition % 2 == 1 && digit % 2 != 0)) {return false;}num /= 10;digitPosition++;}return true;
}int main() {int n;cin >> n;int count = 0;for (int i = 1; i <= n; i++) {if (isGoodNumber(i)) {count++;}}cout << count;return 0;
}