【二重ループメニュー】> FINAL問題 二重ループ:活用編 三角形の探索 (paizaランク C 相当) [難易度: 1685 ±15]
※リンク先へ移動するためには[paiza]へのログインが必要です。
整数 N が与えられるので、三角形の三辺の長さの和が N であり、全ての辺の長さが整数であるような直角三角形が存在するかどうかを判定してください。なお、直角三角形の斜辺 a と他の二辺 b , c の間には次のような三平方の定理が成り立ちます。
a ^ 2 = b ^ 2 + c ^ 2
・ ヒント
三辺の長さの和が N であるような全ての三角形の三辺 a , b , c の組み合わせのうち、三平方の定理を満たすものが 1 つでもあれば "YES" , それ以外の場合は "NO" が答えとなります。全ての三辺の場合を全列挙することができれば三平方の定理を満たすかの判定をすることで答えを求めることができます。
入力値(例)
12
出力値(例)
YES
解答例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<?php $n = trim(fgets(STDIN)); $flag = false; for($i = 1; $i < $n; $i++) { for($j = 1; $j < $n - $i; $j++) { if($i ** 2 + $j ** 2 == ($n - $i - $j) ** 2) { $flag = true; break; } } } echo ($flag) ? "YES" : "NO"; ?> |