520 钻石争霸赛 2021
7-5 大勾股定理 (15 分)
大勾股定理是勾股定理的推广:对任何正整数 n 存在 2n+1 个连续正整数,满足前 n+1 个数的平方和等于后 n 个数的平方和。例如对于 n=1 有 32+42=52;n=2 有 102+112+122=132+142 等。给定 n,本题就请你找出对应的解。
输入格式:
输入在一行中给出正整数 n(≤104)。
输出格式:
分两行输出满足大勾股定理的解,格式如下:
a[0]^2 + a[1]^2 + ... + a[n]^2 =
a[n+1]^2 + ... + a[2n]^2
其中解的数列 a[0] ... a[2n]
按递增序输出。注意行首尾不得有多余空格。
输入样例:
3
输出样例:
21^2 + 22^2 + 23^2 + 24^2 =
25^2 + 26^2 + 27^2
#include <stdio.h>
#include <math.h>
int main()
{
int n, sum1 = 0, sum2 = 0;
int i = 0;
scanf("%d", &n);
do
{
sum1 = 0, sum2 = 0;
i++;
for (int j = 0; j < n + 1; j++)
sum1 += pow(i + j, 2);
for (int k = 0; k < n; k++)
sum2 += pow(i + n + 1 + k, 2);
} while (sum1 != sum2);
printf("%d^2 ", i);
for (int j = 1; j < n + 1; j++)
printf("+ %d^2 ", i + j);
printf("=\n");
printf("%d^2 ", i + n + 1);
for (int k = 1; k < n; k++)
printf("+ %d^2 ", i + n + 1 + k);
return 0;
}