リンク:https://ac.nowcoder.com/acm/contest/1083/C
タイトル説明
Nの一辺の長さの直角三角形を考えると、それは直角三角形の三辺を形成することができるように、両面残りタスクを構築することです。
説明を入力します。
整数n。
出力説明:
他の二つのエッジB、C。答えは、あなたが建設出力を-1作ることができない場合には、合理的である出力の任意のセット限り、一意ではありません。
備考:
0 <= N - <= 1E9
。1 <= B、C <= 1E18
N-、B、Cは整数で
数ピタゴラス。
第一のタイプ
1よりも大きい場合
、奇数
=2n²+ 2N、B、+ 1 2N C =2n²+ 2N + 1。
n = 1の場合(A、B、C)=(3,4,5)
n = 2の場合(A、B、C)=(5,12,13)
以下のためのN = 3(A、B、C)=(7,24,25)
......
これは、日常の、そしてので必然的な二つの連続する自然数の最も古典的である
と互いに素
なので、すべて互いに素であるピタゴラスを取得するには、このルーチンを使用します。
第二のタイプ
=n²-1、C =n²+ 1 B、偶数2N 4より大きい2、
それは例えば、それぞれの正方形の半分で、マイナス1プラス1:
N = 3(A、B、C)=(6,8,10)
n = 4の場合(A、B、C)=(8,15,17)
N = 5の場合(A、B、C)=(10,24,26)
場合N = 6(A、B、C)=(12,35,37)
書式#include <iostreamの> 使用して名前空間はstdを、INT のmain() { int型のn; cinを >> N; もし(N> 1 && N&1 ) { 長い長 T =(N- 1)/ 2 。 長い長い B = 2 *さT * T + 2 *のT。 長い長い C = 2 *さT * T + 2 *のT + 1 。 coutの << B << " " << C << てendl; } 他の 場合(N> = 4 && N%2 == 0 ) { 長い 長い T = N / 2 。 長い 長い B = T * T- 1 。 長い 長い C =性T *のT + 1 。 coutの << B << " " << C << てendl; } 他 COUT << - 1 << ENDL。 リターン 0 ; }