|
三角形の3辺の長さが a, b, c のとき a + b>c, c + a>b, b + c>a が成り立つ. また, 正の数 a, b, c がこの 3 不等式を満たせばこれらを辺の長さとする三角形が存在する.さらに,c が a, b, c の最大値のとき c + a>b, b + c>a は明らかだから,a + b>c が成り立つかどうかを調べれば十分である. したがって,三角形が存在するかどうかを判定するには入力された 3 つの数の最大値を求め,それと他の 2 数の和とを比較すればよい.最大値のほうが真に小さいとき三角形が存在する.
3 辺の長さが a, b, c の三角形が存在するとき,a≦c, b≦c とする. 長さ a, b の辺に対する角が鋭角であることは明らかである. さらに c2<a2 + b2 のとき c に対する角は鋭角, さらに c2=a2 + b2 のとき c に対する角は直角, さらに c2>a2 + b2 のとき c に対する角は鈍角である.
プログラムでは直角三角形, 鋭角三角形, 鈍角三角形を数えるカウンタを用意する.入力された 3 つの数 a, b, c の最大値が c になるように値を交換する. a + b≦c ならカウンタの値を出力しプログラムを終了する. そうでなければ a2 + b2 - c2 の符号により対応するカウンタに 1 加える.