输出四位双平方数之和
如题 // 输出四位双平方数之和#include <stdio.h>
int main()
{
int i, j, k, n, p, qw, bw, sw, gw;
int sum1 = 0, sum2 = 0;
int sum = 0;
printf("请输入需求前几项之和:");
scanf("%d", &k);
p = k; // 题目要求计算10次,其实四位数满足条件的只有17个
for (i = 1000;i <= 9999, p > 0;i++)
{
for (j = 32;j * j <= i;j++) // 31的平方小于1000,不满足四位数的条件
{
if (i == j * j)
{
qw = i / 1000;
bw = (i - 1000 * qw) / 100;
sw = (i - 1000 * qw - 100 * bw) / 10;
gw = i - 1000 * qw - 100 * bw - 10 * sw;
sum1 = (qw + bw + sw + gw);
for (n = 1;n <= 6;n++) // 个位、十位、百位、千位都是9,相加也只是36
{
if (sum1 == n * n)
{
printf("%d\t", i);
p--;
sum += i;
}
}
}
}
}
printf("\n");
printf("四位双平方数前%d项和 = %d\n", k, sum);
}
页:
[1]