本题没有太大的难度,主要的思路:只需要一个枚举,然后判断这个数里是否含有2,0,1,9,这几个数字就可以了,整体的复杂度是O(n)
C/C++ 代码:
#include <iostream>
#include <cstdio>
using namespace std;
int fun(int a) {
while(a) {
if(a%10 == 2 || a%10 == 0 || a%10 == 1 || a%10==9)
return 1;
a /= 10;
}
return 0;
}
int main(int argc, char** argv) {
int n;
while(cin>>n) {
int sum = 0;
for(int i=1;i<=n;i++) {
if(fun(i))
sum += i;
}
cout<<sum<<endl;
}
return 0;
}