牛オフ練習試合51 Cピタゴラス定理

 

リンク: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は整数で


数ピタゴラス。

第一のタイプ

1よりも大きい場合 、奇数 =2n²+ 2N、B、+ 1 2N C =2n²+ 2N + 1。
Aは実際には 正方形の数は 二つに分割 連続する自然数 、例えば:
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 ; 
}

 

おすすめ

転載: www.cnblogs.com/wjc2021/p/11479712.html