【问题描述】 小明对数位中含有 2、0、1、9 的数字很感兴趣,在 1 到 40 中这样的数包 括 1、2、9、10 至 32、39 和 40,共 28 个,他们的和是 574,平方和是 14362。 注意,平方和是指将每个数分别平方后求和。 请问,在 1 到 2019 中,所有这样的数的平方和是多少?
#include<stdio.h>
#include<math.h>
int Judge(int d)
{
if ((d == 2) ||(d == 0) || (d == 1) || (d == 9))
return 1;
else
return 0;
}
int main()
{
long long sum=0;
int a, b, c, d;
for (int i = 1; i <10; i++)
{
if (Judge(i))
{
sum += i * i;
printf("%d\n", i);
}
}
for (int i = 10; i < 100; i++)
{
a = i / 10;
b = i % 10;
if (Judge(b) || Judge(a))
{
sum += i * i;
printf("%d\n", i);
}
}
for (int i = 100; i < 1000; i++)
{
a = i / 100;
b = i % 100 / 10;
c = i % 10;
if (Judge(c) || Judge(b) || Judge(a))
{
sum += i * i;
printf("%d\n", i);
}
}
for (int i = 1000; i <= 2019; i++)
{
a = i / 1000;
b = i % 1000 / 100;
c = i % 1000 % 100 / 10;
d = i % 10;
if (Judge(d) || Judge(c) || Judge(b) || Judge(a))
{
sum += i * i;
printf("%d\n", i);
}
}
printf("%lld\n", sum);
return 0;
}