问题描述
一个整数如果按从低位到高位的顺序,奇数位(个位、百位、万位…·)上的数字是奇数,偶数位(十位、千位、十万位··)上的数字是偶数,我们就称之为“好数”。
给定一个正整数 N,请计算从1到 N 一共有多少个好数。
输入格式
一个整数 N。
输出格式
个整数代表答案。
#include <iostream>
using namespace std;bool is(int n) {int pos = 1; //索引标记数位while (n > 0) {int num = n % 10;if (pos % 2 == 1 && num % 2 == 0) return false; // 奇数位必须是奇数if (pos % 2 == 0 && num % 2 == 1) return false; // 偶数位必须是偶数n /= 10;pos++;}return true;
}int main() {int N, count = 0;cin >> N;for (int i = 1; i <= N; ++i) {if (is(i)) count++;}cout << count << endl;return 0;
}