BOJ-直角三角形(Python)



質問する


過去、エジプト人は各辺が3、4、5の三角形が直角三角形であることを発見した.三角形が直角であるかどうかを、与えられた3つのエッジの長さで区別します.

入力


入力には複数の試験例が与えられ、最後の行には0 0 0が入力される.各試験例には30000未満の整数が与えられ、各入力はエッジの長さを表す.

しゅつりょく


各入力に対して、直角三角形が正しい場合は「right」を出力し、そうでない場合は「error」を出力します.

入力例



サンプル出力



ハーモニー

while 1:
    # (1)
    a, b, c = map(int, input().split())

    # (2)
    if a == 0 and b == 0 and c == 0:
        break

    # (3)
    list_value = []

    # (4)
    list_value.append(a)
    list_value.append(b)
    list_value.append(c)

    # (5)
    list_value = sorted(list_value)

    # (6)
    pow_1 = pow(list_value[0], 2)
    pow_2 = pow(list_value[1], 2)
    pow_3 = pow(list_value[2], 2)

    # (7)
    if pow_3 == pow_1 + pow_2:
        print("right")

    else:
        print("wrong")
(1):a、b、c変数を入力
(2):while文終了条件
(3):リストvalueという名前のリストを作成する
(4):リストvalueにa,b,cを順番に追加
(5)
  • list value昇順配列
  • は、a b c順に並ぶ
  • が保証されないためである.
  • なぜこのようにするのか、直角三角形の原理から
  • を理解することができる.
    (6)
    各list valueの要素にpow 1~pow 3を乗算し、を割り当てる.
  • 、list value[2]を参照してください.入力要素の最大値
  • に対応します.
    (7)
  • 直角三角形の式は(対角線の長さの二乗)=(横の二乗)+(縦の二乗)であるため、この式に該当すると正しく、そうでないと出力エラーは
  • である.

    📝 結果



    😃 に感銘を与える

  • 小学校や中学校で学んだ直角三角形の公式を思い出す.今でもこれがもっと不思議だと覚えています(対角線長の二乗)=(横の二乗)+(縦の二乗)式が覚えられるので,この問題を解くことができる.
  • 👍 Irishのすべてのコードを表示


    -> Irish Github