看板 java 關於我們 聯絡資訊
腦筋打結想不出來 請各位提點一下 int i = (int)(Math.random()* 6 + 1); int n = 100; 希望輸出結果 若i = 1 , 則 n = 100 若i = 2 , 則 n = 200 若i = 3 , 則 n = 600 若i = 4 , 則 n = 1200 若i = 5 , 則 n = 2000 若i = 6 , 則 n = 3000 不想寫一堆if,想請問如何處理i與n,才能出現想要的結果 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.77.4.125 ※ 文章網址: https://www.ptt.cc/bbs/java/M.1510571498.A.373.html
pttworld: 寫成一個陣列,亂數索引取值。 11/13 19:35
x12345x: 看不懂上面的式子為何會輸出成下面的東西 11/13 20:14
taco2548: 抱歉表達能力不佳,我是想輸出成那樣 11/13 20:41
※ 編輯: taco2548 (42.77.4.125), 11/13/2017 20:43:22
qrtt1: 說明一下規則吧? 11/13 22:04
esatangw: if (i <= 2) { n *= i } 11/13 22:26
esatangw: else if (i == 3) { n = 2 * i * n; } 11/13 22:26
esatangw: else { n = 12 * (i - 3) * n; } 11/13 22:26
esatangw: 單純從上面條件歸納 不太清楚題目.. 11/13 22:26
taco2548: 抱歉應該是我自己題目弄錯=.= 11/13 22:43
※ 編輯: taco2548 (42.77.4.125), 11/13/2017 22:43:39
taco2548: 改成這樣,就可以用 n*=(i*(i-1)); 解決了 11/13 22:45
gmoz: i=1會變零 11/13 23:19
Brabus700G: 不想寫if就用?:啊XD 11/13 23:27
libertyleave: 定個 array ans[] = {0,100,200,600,1200,2000,3000 11/14 11:15
libertyleave: n =ans[i] 11/14 11:15
libertyleave: 懶得歸納數學大概這樣最方便 11/14 11:16
ssccg: 這種有規則就把規則翻譯成程式而已,不知道規則的話是數學 11/14 11:44
ssccg: 問題而不是程式問題... 11/14 11:44
JustinHere: Map.of(1,100,2,200,3,600,4,1200,5,2000,6,3000) 11/15 19:58
JustinHere: .get(new Random().ints(1, 1, 7).findFirst() 11/15 19:59
JustinHere: .getAsInt()); 11/15 19:59
JustinHere: 或 List.of(100,200,600,1200,2000,3000) 11/15 20:02
JustinHere: .get(new Random().ints(1,0,6).findFirst() 11/15 20:02
JustinHere: .getAsInt()); 11/15 20:03
JustinHere: Java 9 才能跑喔…XD 11/15 20:04
LawLombie: switch(){} 11/15 20:34
taco2548: 我最終還是寫了一個if啦~~XD 11/16 15:54
taco2548: if(i > 1){ 11/16 15:55
taco2548: n *= (i * (i-1)); 11/16 15:56
taco2548: } 11/16 15:56