作者taco2548 (T@cO)
看板java
标题[问题] 数学问题
时间Mon Nov 13 19:11:33 2017
脑筋打结想不出来
请各位提点一下
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://webptt.com/cn.aspx?n=bbs/java/M.1510571498.A.373.html
1F:→ pttworld: 写成一个阵列,乱数索引取值。 11/13 19:35
2F:推 x12345x: 看不懂上面的式子为何会输出成下面的东西 11/13 20:14
3F:→ taco2548: 抱歉表达能力不佳,我是想输出成那样 11/13 20:41
※ 编辑: taco2548 (42.77.4.125), 11/13/2017 20:43:22
4F:→ qrtt1: 说明一下规则吧? 11/13 22:04
5F:→ esatangw: if (i <= 2) { n *= i } 11/13 22:26
6F:→ esatangw: else if (i == 3) { n = 2 * i * n; } 11/13 22:26
7F:→ esatangw: else { n = 12 * (i - 3) * n; } 11/13 22:26
8F:→ esatangw: 单纯从上面条件归纳 不太清楚题目.. 11/13 22:26
9F:→ taco2548: 抱歉应该是我自己题目弄错=.= 11/13 22:43
※ 编辑: taco2548 (42.77.4.125), 11/13/2017 22:43:39
10F:→ taco2548: 改成这样,就可以用 n*=(i*(i-1)); 解决了 11/13 22:45
11F:推 gmoz: i=1会变零 11/13 23:19
12F:推 Brabus700G: 不想写if就用?:啊XD 11/13 23:27
13F:推 libertyleave: 定个 array ans[] = {0,100,200,600,1200,2000,3000 11/14 11:15
14F:→ libertyleave: n =ans[i] 11/14 11:15
15F:→ libertyleave: 懒得归纳数学大概这样最方便 11/14 11:16
16F:→ ssccg: 这种有规则就把规则翻译成程式而已,不知道规则的话是数学 11/14 11:44
17F:→ ssccg: 问题而不是程式问题... 11/14 11:44
18F:→ JustinHere: Map.of(1,100,2,200,3,600,4,1200,5,2000,6,3000) 11/15 19:58
19F:→ JustinHere: .get(new Random().ints(1, 1, 7).findFirst() 11/15 19:59
20F:→ JustinHere: .getAsInt()); 11/15 19:59
21F:→ JustinHere: 或 List.of(100,200,600,1200,2000,3000) 11/15 20:02
22F:→ JustinHere: .get(new Random().ints(1,0,6).findFirst() 11/15 20:02
23F:→ JustinHere: .getAsInt()); 11/15 20:03
24F:→ JustinHere: Java 9 才能跑喔…XD 11/15 20:04
25F:推 LawLombie: switch(){} 11/15 20:34
26F:→ taco2548: 我最终还是写了一个if啦~~XD 11/16 15:54
27F:→ taco2548: if(i > 1){ 11/16 15:55
28F:→ taco2548: n *= (i * (i-1)); 11/16 15:56
29F:→ taco2548: } 11/16 15:56