勾股數的構造

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章