题意:给出直角三角形一边,求另两边,如果存在输出任意一组即可。
【分析】
对于直角三角形△ABC,如图:
我们知道的是
因为题目说如果题目存在多种解,输出任何一个就可以了,所以我们不妨假设输入的n是一条直角边的长度,那么
根据平方差公式可得
那么,这个时候,我们要求解的就是a,b
于是乎,我们分类讨论即可
#include<iostream>
#include<cstdio>
using namespace std;
typedef long long ll;
int main(void)
{
ll n;
while(cin >> n)
{
if(n <= 1) puts("-1");
else
{
if(n%2)
printf("%I64d %I64d\n", (n*n+1)/2-1, (n*n+1)/2);
else
printf("%I64d %I64d\n", (1+(n*n)/4)-, 1+(n*n)/4);
}
}
return 0;
}