小明对数位中含有2、0、1、9 的数字很感兴趣,在1 到40 中这样的数包
括1、2、9、10 至32、39 和40,共28 个,他们的和是574,平方和是14362。
注意,平方和是指将每个数分别平方后求和。
请问,在1 到2019 中,所有这样的数的平方和是多少?
这个题是常见的找数字的模板,就是利用%完成对每一位数字的检索,然后完成。
#include<iostream>
using namespace std;
typedef long long ll;
int main()
{
ll ans = 0;
for (ll j = 1; j <=2019; j++)
{
ll i = j;
ll ok = 0;
while (i) {
ll u = i % 10 ;
if (u == 2 || u == 0 || u == 1 || u == 9) {
ok = 1;//判断是否成功
break;
}
i /= 10;//找下一位
}
if(ok)
ans += j * j;
}
cout << ans;
return 0;
}
return code;