【问题描述】
一个整数如果按从低位到高位的顺序,奇数位(个位、百位、万位 · · · )上的数字是奇数,偶数位(十位、千位、十万位 · · · )上的数字是偶数,我们就称之为“好数”。
给定一个正整数
N,请计算从 1 到
N 一共有多少个好数。
【输入格式】
一个整数
N。
【输出格式】
一个整数代表答案。
【样例输入 1】24【样例输出 1】7【样例输入 2】2024【样例输出 2】150【样例说明】对于第一个样例,24 以内的好数有 1、3、5、7、9、21、23,一共 7 个。
#include<iostream>
using namespace std;
int p(int x)//判断位数的奇偶
{
if(x%2==0)//为偶
return 1;
else //为奇
return 0;
}
int main()
{
long int N,sum=0;
cin>>N;
for(long int i=1;i<=N;i++)
{
long int num,n,flag=0;//falg=0为奇数;
num=i;
while(num)
{
n=num%10;
if(p(n)==flag)
{
if(flag==0)
flag=1;
else
flag=0;
num/=10;
}
else break;
}
if(num==0)
{
sum=sum+1;
}
}
cout<<sum;
return 0;
}