解题关键就是 istrue函数编写:如果一个属取余10后,符合余数0,1,2,9就是要找的数,如果不是就整除10,最终为0就不做任何操作退出循环。
代码如下:
#include <iostream>
using namespace std;
int istrue(int a) {
int temp = 0;
while (a) {
temp = a % 10;
if (temp == 0 || temp == 1 || temp == 2 || temp == 9)
return 1;
a /= 10;//整除运算:不断判断直至不符合IF条件退出循环
}
return 0;
}
int main() {
long long sum = 0;
for (int i = 1; i <= 2019; i++) {
if (istrue(i)) {
sum += i*i;
}
}
cout << sum << endl;
return 0;
}