(枚举)
数字最大$1e7$,直接放进num数组看一下是不是数位和数字同奇偶即可,check代码$O(log(len(x)))$
时间复杂度
$O(\sum_{i=1}^{n}log(len(i)))$
C++ 代码
#include <iostream>
using namespace std;
bool check(int x)
{
static int num[8];
int len = 0;
for(; x; x /= 10) num[++len] = x % 10;
for(int i = 1; i <= len; i++)
{
if((num[i] % 2) != (i % 2)) return false;
}
return true;
}
int main()
{
int n, ans = 0;
scanf("%d", &n);
for(int i = 1; i <= n; i++) ans += check(i);
printf("%d\n", ans);
return 0;
}
太强了