判断好数,关键在于判断当前位数的奇偶和该位数字的奇偶是否一致
判断该位数字的奇偶很简单,对2取余再丢个位取个位即可
判断当前是奇数位还是偶数位类似,定义一个变量t,初始化为1,1为奇数表示个位是奇数位,通过变量t++,可实现偶数位为偶数,奇数位为奇数。
#include <iostream>
using namespace std;
bool IsGood(int a)
{
int t=1;//奇偶位数判断,t++
while(a!=0)
{
int num=a%10;
if(t%2!=num%2)//当前奇数位不为奇数,偶数位不为偶数
return false;
t++;
a/=10;//丢弃个位
}
return true;
}
int main()
{
// 请在此输入您的代码
int n;
cin>>n;
int count=0;
for(int i=1;i<=n;i++)
{
if(IsGood(i))
count++;
}
cout<<count;
return 0;
}