简单题,取余相加即可,数据范围不大,直接打表可以O(1)
int countEven(int num) {
int ans=0,sum,k;
for (int i=1;i<=num;i++){
sum=0,k=i;
while(k>0){
sum+=k%10;
k=k/10;//取余各位相加
}
ans+=(sum%2==0)?1:0;
}
return ans;
}