鏈接: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;
}
//勾股數的構造板子