题目:一个整数如果按从低位到高位的顺序,奇数位(个位、百位、万位 · · · )上的数字是奇数,偶数位(十位、千位、十万位 · · · )上的数字是偶数,我们就称之为“好数”。给定一个正整数 N,请计算从 1 到 N 一共有多少个好数。
由于题目中最高只有七位数,可以通过多少位数来分别判断:
#include<stdio.h>
int main()
{
int num1, count = 0, n = 0;
scanf("%d", &num1);
for (int num = 1; num <= num1; num++)
{
int num2 = num;
while (num2)
{
num2 /= 10;
count++;
}
if (count == 1)
{
if (num % 2 != 0) n++;
}
else if (count == 2)
{
if ((num % 10) % 2 != 0 && (num / 10) % 2 == 0) n++;
}
else if (count == 3)
{
if ((num % 10) % 2 != 0 && ((num / 10) % 10) % 2 == 0