看板 Programming 關於我們 聯絡資訊
我提供一下我會嘗試的做法,首先我先產生31個大小的陣列,裡面有數字0~30 以及一個back,為陣列最後一個元素的索引位置。 如果back為0 則回傳0 n = 產生亂數[ 1 , back ]; 回傳值 = 陣列[ n ]; 對調(陣列[ n ] 跟陣列[ back ]); --back; 如果back為0,則清空陣列。 回傳回傳值; 外面檢查回傳值是否為0,0表示座位已滿。 這是在座位沒有0號的情形。 有0號的話則以丟出exception的方式。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.227.225.9 ※ 編輯: sunneo 來自: 61.227.225.9 (08/13 07:43)
liangjr:我也會這樣寫 存成char array也不一定會比 76.95.86.77 08/13 07:49
liangjr:boolean array佔空間 76.95.86.77 08/13 07:49
※ 編輯: sunneo 來自: 61.227.225.9 (08/13 08:05)
joetsai:座位是從1~30號 又忘了寫 =.=" 122.125.229.18 08/13 08:33
sunneo:不不不..我知道是1~30 61.227.225.9 08/13 09:09
sunneo:只是保留0作為back的最後一號 61.227.225.9 08/13 09:10
sunneo:如果取得0表示座位已滿 61.227.225.9 08/13 09:10
sunneo:你自己用這做法run一次就知道了. 61.227.225.9 08/13 09:11
joetsai:嗯嗯 我懂你的意思 但是我不瞭解 你們怎 122.125.232.12 08/13 10:14
joetsai:怎麼避免選到重複的位子...? 122.125.232.12 08/13 10:14
sunneo:把選到的位置跟最後元素對調並且popback 61.227.225.9 08/13 10:15
sunneo:這樣就相當於把選到的位置從候選拿掉 61.227.225.9 08/13 10:15
slalala:好方法啊!!!QQ 61.59.146.237 08/13 11:15