好数
一个整数如果按从低位到高位的顺序,奇数位 (个位、百位、万位 ⋯ ) 上的数字是奇数,偶数位 (十位、千位、十万位 ⋯ ) 上的数字是偶数,我们就称之为 “好数”。
给定一个正整数 N请计算从 1 到 N 一共有多少个好数。
#include <iostream>
using namespace std;
bool is_good(int num){
int position = 1;
int digit;
while (num > 0) {
digit = num % 10;
if ((position % 2 == 1 && digit % 2 == 0) || (position % 2 == 0 && digit % 2 == 1)) {
return false; // 不满足“好数”的条件
}
num /= 10; // 去掉最低位
position++; // 位数递增
}
return true;
}
int main(int, char **) {
int n, s = 0;
cin >> n;
for (int i = 1; i < n; i++) {
if(is_good(i))
s++;
}
cout << s;
}

浙公网安备 33010602011771号