前往
大廳
主題

ZeroJudge - d507: 三角形的判斷 解題心得

Not In My Back Yard | 2021-09-01 00:00:06 | 巴幣 0 | 人氣 480

題目連結:


題目大意:
輸入給定三正整數 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 時,代表給定的三角形為銳角三角形。可以看到這恰好與上一個情況相反。

如此一般便可以判斷三角形的種類。




此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。

創作回應

相關創作

更多創作