[出題與解題] 生病的三角樹林

[題目說明]

來源 - 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、考慮倒三角情況,不過暫不考慮倒三角形的情況。

 

[解法思路說明 - 以下甚入! ]

[方法一] 找出公式

  此為來源網站作者的解法,找出三角形排列規則、決定最小三角形頂點與蟲害的關係

 

[方法二] 找出符合的最小三角形

  此為我自己解的方法,找到各種三角形的可能性,並判斷出何為最小的三角形。 這也是一開始這個題目會讓我感興趣的地方,它讓我想到另一個大家都玩過的題目「可以找出幾個三角形」。

  所以以此為前提,我先寫了一個找出所有排成正三角形的可能性的功能,再把蟲害的樹木判斷功能代入其中,找出符合的最小正三角形。

   如果有別種的思考,歡迎討論之,搞不好會發現更有趣的寫法。

arrow
arrow
    全站熱搜

    Leo 發表在 痞客邦 留言(0) 人氣()