2015年7月27日 星期一

ITSA 37 Problem 4 計算炸彈數

題目來源 :http://140.116.249.152/e-Tutor/mod/programming/view.php?id=22217

[Problem 4] 計算炸彈數

成績: 0 / 倒扣: 0.8
問題描述 :
模擬踩地雷遊戲,計算出周圍炸彈數量。
輸入一個二維陣列,每一格用 0 與 1 代表是否為炸彈, 0 代表該格不為炸彈, 1 代表該格為炸彈
例如:
1234
11011
21000
31101
40110
上述表格代表
炸彈: (1,1), (1,3),(1,4), (2,1), (3,1), (3,2), (3,4), (4,2), (4,3)
非炸彈: (1,2), (2,2), (2,3), (2,4), (3,3), (4,1), (4,4)
請找出非炸彈的格子中周圍八格有幾顆炸彈。
110
0x1
110
上述表格 x 的值應為 5
若 x 本身就是代表一顆炸彈,則值應為 0
輸入說明 :
5
1 0 0 1 1
0 1 0 1 0
1 0 1 0 1
0 0 0 1 0
0 1 1 1 0
5 代表陣列大小 ( 最大為 9 ,最小為 3) ,之後為每一格的值
輸出說明 :
依序輸出,中間以空白隔開,最後 必須有換行字元 。
範例 :

輸入範例輸出範例
5
1 0 0 1 1
0 1 0 1 0
1 0 1 0 1
0 0 0 1 0
0 1 1 1 0
0 2 3 0 0
3 0 4 0 4
0 3 0 4 0
2 4 5 0 3
1 0 0 0 2


解法:
因為炸彈是1 ,因此我們可以先判斷是否為炸彈,若是炸彈則輸出0,其餘的就將它四周的值加起來(因為炸彈是1,所以全加起來就知道數目)。
但邊界問題要小心,可以將測資用1~N存  邊界都設0
這樣就不用判斷邊界了 ^&^





沒有留言:

張貼留言

注意:只有此網誌的成員可以留言。