问题描述
一个整数如果按从低位到高位的顺序,奇数位 (个位、百位、万位 ⋯⋯ ) 上的数字是奇数,偶数位 (十位、千位、十万位 ⋯⋯ ) 上的数字是偶数,我们就称之为 “好数”。
给定一个正整数 N,请计算从 1 到 N 一共有多少个好数。
输入格式
一个整数 N。
输出格式
一个整数代表答案。
样例输入 1
24
样例输出 1
7
样例输入 2
2024
样例输出 2
150
样例说明
对于第一个样例,24 以内的好数有 1、3、5、7、9、21、23,一共 7 个。
评测用例规模与约定
对于 10%的评测用例,1≤N≤10 。
对于 100%的评测用例,1≤N≤10^7 。
题解
#include <iostream>
using namespace std;
// 判断一个数是否为好数
bool haoshu(int num) {
int weishu = 1; // 初始化当前位数为 1(个位)
while (num > 0) //循环遍历每一位数{
int digit = num % 10; // 获取当前最低位的数字
if