原题:
小明对数位中含有2、0、1、9的数字很感兴趣,在1到40中这样的数包括1、2、9、10至32、39和40,共28个,他们的和是574。
请问,在1到2019中,所有这样的数的和是多少?
解题思路:
通过枚举,筛选出 1 ~ 2019 中所有包含‘2’、‘0’、‘1’、‘9’的数字,并加起来。
代码实现:
#include <iostream>
using namespace std;
bool Judge(int value)
{
while(value)
{
int temp = value % 10;
if(temp == 2 || temp == 0 || temp == 1 || temp == 9)
return true;
value /= 10;
}
return false;
}
int main()
{
int sum = 0;
for (int i = 1; i <= 2019; ++i)
{
if(Judge(i))
sum += i;
}
cout << sum;
return 0;
}
运行结果:
1905111