链接:https://ac.nowcoder.com/acm/contest/1083/C
来源:牛客网
勾股定理
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 32768K,其他语言65536K
Special Judge, 64bit IO Format: %lld
题目描述
给出直角三角形其中一条边的长度n,你的任务是构造剩下的两条边,使这三条边能构成一个直角三角形。
输入描述:
一个整数n。
输出描述:
另外两条边b,c。答案不唯一,只要输出任意一组即为合理,如果无法构造请输出-1。
示例1
输入
复制
3
输出
复制
4 5
偶数的当然就好构造了,(n * n / 4 - 1) 和 (n * n / 4 + 1) 但奇数就不会了。。。
图片链接:https://www.cnblogs.com/lusiqi/p/11478989.html
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n;
int main() {
scanf("%lld", &n);
if(n <= 2) {
printf("-1\n");
return 0;
}
if(n & 1) printf("%lld %lld\n", (n * n - 1) / 2, (n * n + 1) / 2);
else printf("%lld %lld\n", n * n / 4 - 1, n * n / 4 + 1);
return 0;
}