题目描述
小明对数位中含有 2、0、1、9 的数字很感兴趣(不包括前导 0),在 1 到 40 中这样的数包括 1、2、9、10 至 32、39 和 40,共 28 个,他们的和是 574。
请问,在 1 到 n 中,所有这样的数的和是多少?
样例
blablabla
算法1
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
#include<iostream>
using namespace std;
int check(int x)
{
int a = x,b;
while(a)
{
b = a%10;
a = a/10;
if(b==2||b==0||b==1||b==9)
return x;
}
return 0;
}
int main()
{
long long ans=0;
int n;
cin>>n;
for(int i = 1;i <= n;i++)
{
if(check(i))
ans += i;
}
cout<<ans<<endl;
return 0;
}
算法2
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla