close
[出題與解題] 生病的三角樹林
[題目說明]
來源 - http://dowdow.wordpress.com
有一個特別的三角樹林,每顆樹木按照排列有自己的編號1~21號。當發生蟲害時,我們必須要以一個最小的三角形將發生蟲害的樹給圍起。請試著找出最小的三角形。
例:蟲害的樹木為 6號 9號 14號 19號,則最小三角形的三個點為6號、18號及21號 (如圖所示)
[原題目要求]
1、輸入生病的號碼 (由小至大)
2、輸出最小三角形頂點
[思考說明]
這個題目有趣的地方在於
1、要找出最小範圍的三角形
2、並沒有說明要正三角還是倒三角,例如如果生病的是13號、14號及19號,則此三點也正為一個倒三角形,如果是正三角則三頂點變成9號、18號、20號
因此可以把難度訂為 1、只有正三角 2、考慮倒三角情況,不過暫不考慮倒三角形的情況。
[解法思路說明 - 以下甚入! ]
[方法一] 找出公式
此為來源網站作者的解法,找出三角形排列規則、決定最小三角形頂點與蟲害的關係
[方法二] 找出符合的最小三角形
此為我自己解的方法,找到各種三角形的可能性,並判斷出何為最小的三角形。 這也是一開始這個題目會讓我感興趣的地方,它讓我想到另一個大家都玩過的題目「可以找出幾個三角形」。
所以以此為前提,我先寫了一個找出所有排成正三角形的可能性的功能,再把蟲害的樹木判斷功能代入其中,找出符合的最小正三角形。
如果有別種的思考,歡迎討論之,搞不好會發現更有趣的寫法。
全站熱搜
留言列表