// 题目描述
// 小明对数位中含有2、0、1、9 的数字很感兴趣,在1 到40 中这样的数包
// 括1、2、9、10 至32、39 和40,共28 个,他们的和是574,平方和是14362。
// 注意,平方和是指将每个数分别平方后求和。
// 请问,在1 到2019 中,所有这样的数的平方和是多少?
方法:暴力就完了。
记得开long long
#include <iostream>
using namespace std;
typedef long long int ll;
const int N = 1e06 + 10;
int cnt;
int q[N];
bool query(int n) {
while (n) {
int a = n % 10;
n /= 10;
if (a == 0 || a == 1 || a == 2 || a == 9) return true;
}
return false;
}
int main() {
for (int i = 1; i <= 2019; i++) {
if (query(i)) {
q[cnt++] = i;
}
}
ll res = 0, sum = 0;
for (int i = 0; i < cnt; i++) {
res += q[i];
sum += q[i] * q[i];
}
cout<< sum;
return 0;
}
省一冲冲冲