【分析】
对于直角三角形△ABC,如图:
我们知道的是
因为题目说如果题目存在多种解,输出任何一个就可以了,所以我们不妨假设输入的n是一条直角边的长度,那么
根据平方差公式可得
那么,这个时候,我们要求解的就是a,b
于是乎,我们分类讨论即可
【时间复杂度&&优化】
O(1)
代码:
#include<cstdio>
#define LL __int64
int main()
{
LL n;
scanf("%I64d",&n);
if(n==1||n==2) //特殊考虑
printf("-1\n");
else //结论
{
if(n*n%2==1)
printf("%I64d %I64d\n",(n*n+1)/2,(n*n-1)/2);
else
printf("%I64d %I64d\n",(n*n+4)/4,(n*n-4)/4);
}
return 0;
}