題目連結:
題目大意:
輸入給定三正整數 a 、 b 、 c(0 < a 、 b 、 c ≦ 32767),代表三角形的三邊長。試判斷該三邊形為何種,是銳角(Acute)、直角(Right)還是鈍角(Obtuse)?請根據種類輸出「acute triangle」、「right triangle」或「obtuse triangle」。
範例輸入:
3 4 5
範例輸出:
right triangle
解題思維:
先將三邊長 a 、 b 、 c 由小排到大變為 a' 、 b' 、 c'(也就是此時保證了 a' ≦ b' ≦ c'),而此時我們就可以根據邊長來判斷三角形的種類:
當 a' ^ 2 + b' ^ 2 = c' ^ 2 時,代表給定的三角形為直角三角形(即畢氏定理(Pythagorean Theorem));
當 a' ^ 2 + b' ^ 2 < c' ^ 2 時,代表給定的三角形為鈍角三角形。因為此時比起上式,c' 相對著角度(即 a' 、 b' 之夾角)更靠近 c' 所以角度會更大,換句話說就是因為 a' 、 b' 變得更短了;
當 a' ^ 2 + b' ^ 2 > c' ^ 2 時,代表給定的三角形為銳角三角形。可以看到這恰好與上一個情況相反。
如此一般便可以判斷三角形的種類。
此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。