链接:https://ac.nowcoder.com/acm/contest/1083/C
来源:牛客网
题目描述
给出直角三角形其中一条边的长度n,你的任务是构造剩下的两条边,使这三条边能构成一个直角三角形。
输入描述:
一个整数n。
输出描述:
另外两条边b,c。答案不唯一,只要输出任意一组即为合理,如果无法构造请输出-1。
示例1
输入
复制
3
输出
复制
4 5
示例2
输入
复制
4
输出
复制
3 5
备注:
0<=n<=1e9 1<=b,c<=1e18 n,b,c均为整数
题意给你直角型一边求两边
#include<bits/stdc++.h>
using namespace std;
int main() {
long long n;
scanf("%lld", &n);
if(n <= 2) {
printf("-1\n");
}
else {
int k;
if(n&1) {
k = 1;
}
else{
k = 2;
}
printf("%lld %lld\n", (n*n/k-k)/2, (n*n/k+2)/2);
}
return 0;
}
//勾股数的构造板子