问题描述
小明对数位中含有 2、0、1、9 的数字很感兴趣(不包括前导 0) ,在 1 到40 中这样的数包括 1、2、9、10 至 32、39 和 40,共 28 个,他们的和是 574。
请问,在 1 到 n 中,所有这样的数的和是多少?
题目代码
#include<iostream>
using namespace std;
bool check(int num){
int tem;
while(num){
tem = num%10;
if(tem == 2||tem == 0||tem == 1||tem == 9) return true;
num/=10;
}
return false;
}
int main(){
long long res = 0;
int n;
cin>>n;
for(int i=1;i<=n;i++){
if(check(i)) {
res+=i;
}
}
cout<<res<<endl;
return 0;
}