时间限制: 1 Sec 内存限制: 256 MB
题目描述
小明对数位中含有2、0、1、9 的数字很感兴趣(不包括前导0)
在1到40中这样的数包括1、2、9、10 至32、39 和40,共28 个,他们的和是574。
请问,在1到n 中,所有这样的数的和是多少?
输入
输入一个正整数n(1<=n<=10000)
输出
输出一行,包含一个整数,表示满足条件的数的和。
样例输入
40
样例输出
574
代码:
#include<bits/stdc++.h>
using namespace std;
int n;
long long ans=0;
int main()
{
cin>>n;
for(int i=1;i<=n;i++){
int t=i,flag=0;
while(t){
int k=t%10;
if(k==0||k==1||k==2||k==9){
flag=1; break;
}
t/=10;
}
if(flag) ans+=i;
}
cout<<ans<<endl;
return 0;
}
来源:CSDN
作者:学算法的小菜鸟
链接:https://blog.csdn.net/qq_42090769/article/details/104196551