问题描述
一个整数如果按从低位到高位的顺序,奇数位 (个位、百位、万位 ⋯⋯ ) 上的数字是奇数,偶数位 (十位、千位、十万位 ⋯⋯ ) 上的数字是偶数,我们就称之为 “好数”。
给定一个正整数 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≤ 。
运行限制
语言 | 最大运行时间 | 最大运行内存 |
---|---|---|
C++ | 1s | 256M |
C | 1s | 256M |
Java | 3s | 512M |
Python3 | 10s | 512M |
PyPy3 | 3s | 512M |
Go | 5s | 512M |
JavaScript | 5s | 512M |
C++代码如下:
#include<bits/stdc++.h>
using namespace std;
int ans=0;
void fun(int a){
bool flag=1;
while(a){
int b=a%10;
if(b%2!=flag){
return;
}
a/=10;
flag=!flag;
}
ans++;
}
int main()
{
int N;
cin>>N;
for(int i=1;i<=N;i++){
fun(i);
}
cout<<ans<<endl;
return 0;
}