質問編集履歴
4
変数xの名称をnに変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -4,17 +4,19 @@
|
|
4
4
|
|
5
5
|
|
6
6
|
|
7
|
-
サイコロを3つ同時になげて目の和(
|
7
|
+
サイコロを3つ同時になげて目の和(n)になるのは何通りあるかのプログラムを書きました。
|
8
8
|
|
9
|
-
入力された値をx 何通りあるかをcountにしました。がうまくいきません。
|
10
9
|
|
10
|
+
|
11
|
+
入力された値「n」になるパターンが何通りあるかをcountにしました。がうまくいきません。
|
12
|
+
|
11
|
-
|
13
|
+
nの範囲は 3<=n<=18です
|
12
14
|
|
13
15
|
です
|
14
16
|
|
15
17
|
|
16
18
|
|
17
|
-
例:
|
19
|
+
例:n=3の時は(1,1,1)しかないのでcount=1
|
18
20
|
|
19
21
|
### コードの説明
|
20
22
|
|
@@ -22,9 +24,9 @@
|
|
22
24
|
|
23
25
|
|
24
26
|
|
25
|
-
与えられた
|
27
|
+
与えられたnをdice配列に格納する。
|
26
28
|
|
27
|
-
dice[0]=1(1の目)、dice[1]=1(1の目)、dice[2]=
|
29
|
+
dice[0]=1(1の目)、dice[1]=1(1の目)、dice[2]=n-2した値を初期値としていれる
|
28
30
|
|
29
31
|
dice[2]>6になるまで、dice[2]-=1 dice[1]=+1する
|
30
32
|
|
@@ -36,13 +38,13 @@
|
|
36
38
|
|
37
39
|
例1
|
38
40
|
|
39
|
-
|
41
|
+
n=4のとき
|
40
42
|
|
41
43
|
[1,1,2]→[1,2,1]→[2,1,1] 3通り
|
42
44
|
|
43
45
|
例2:
|
44
46
|
|
45
|
-
|
47
|
+
n=18のとき
|
46
48
|
|
47
49
|
[6,6,6] 1通り
|
48
50
|
|
@@ -58,7 +60,11 @@
|
|
58
60
|
|
59
61
|
問題の説明文を修正しました。
|
60
62
|
|
61
|
-
|
63
|
+
nは3<=n<=18の範囲で入力されるものとします。
|
64
|
+
|
65
|
+
|
66
|
+
|
67
|
+
|
62
68
|
|
63
69
|
|
64
70
|
|
@@ -72,7 +78,7 @@
|
|
72
78
|
|
73
79
|
|
74
80
|
|
75
|
-
|
81
|
+
xが見にくいためnに変更しました
|
76
82
|
|
77
83
|
|
78
84
|
|
@@ -96,9 +102,9 @@
|
|
96
102
|
|
97
103
|
Scanner sc = new Scanner(System.in);
|
98
104
|
|
99
|
-
int
|
105
|
+
int n= sc.nextInt();//目の和を入力
|
100
106
|
|
101
|
-
int[] dice={1,1,(
|
107
|
+
int[] dice={1,1,(n-2)};//サイコロ3つの配列
|
102
108
|
|
103
109
|
double count=1;//何通りあるかのカウント
|
104
110
|
|
3
ジャンルの変更 アルゴリズムが間違えていたことのお知らせ
test
CHANGED
File without changes
|
test
CHANGED
@@ -6,13 +6,9 @@
|
|
6
6
|
|
7
7
|
サイコロを3つ同時になげて目の和(x)になるのは何通りあるかのプログラムを書きました
|
8
8
|
|
9
|
-
入力された値をx 何通りあるかをcountにしました。
|
9
|
+
入力された値をx 何通りあるかをcountにしました。がうまくいきません。
|
10
10
|
|
11
|
-
|
11
|
+
xの範囲は 3<=x<=18です
|
12
|
-
|
13
|
-
和の最大数は18
|
14
|
-
|
15
|
-
和の最小値は3
|
16
12
|
|
17
13
|
です
|
18
14
|
|
@@ -20,17 +16,59 @@
|
|
20
16
|
|
21
17
|
例:x=3の時は(1,1,1)しかないのでcount=1
|
22
18
|
|
19
|
+
### コードの説明
|
20
|
+
|
21
|
+
countは後で確率を出すときに使うかもしれないのでdouble型にしてます
|
23
22
|
|
24
23
|
|
25
24
|
|
25
|
+
与えられたxをdice配列に格納する。
|
26
26
|
|
27
|
-
|
27
|
+
dice[0]=1(1の目)、dice[1]=1(1の目)、dice[2]=x-2した値を初期値としていれる
|
28
28
|
|
29
|
+
dice[2]>6になるまで、dice[2]-=1 dice[1]=+1する
|
30
|
+
|
31
|
+
dice[2]=6かつdice[1]>6ならdice[0]=+1 dice[1]=+1として初期値を作る
|
32
|
+
|
33
|
+
///数える///
|
34
|
+
|
35
|
+
※ここがうまくいきません。
|
36
|
+
|
37
|
+
例1
|
38
|
+
|
39
|
+
x=4のとき
|
40
|
+
|
41
|
+
[1,1,2]→[1,2,1]→[2,1,1] 3通り
|
42
|
+
|
43
|
+
例2:
|
44
|
+
|
45
|
+
x=18のとき
|
46
|
+
|
47
|
+
[6,6,6] 1通り
|
48
|
+
|
49
|
+
|
50
|
+
|
51
|
+
~~数はあってると思うのですが、あっていませんでした。ソースコードで、条件式・配列の要素数を直書きしていてあまり良くない気がします。
|
52
|
+
|
29
|
-
修正したほうがいいと思うのですが、どのように書いたらキレイに書けるのでしょうか。
|
53
|
+
修正したほうがいいと思うのですが、どのように書いたらキレイに書けるのでしょうか。~~
|
30
54
|
|
31
55
|
よろしくおねがいします。
|
32
56
|
|
57
|
+
### 追記
|
33
58
|
|
59
|
+
問題の説明文を修正しました。
|
60
|
+
|
61
|
+
xは3<=x<=18の範囲で入力されるものとします。
|
62
|
+
|
63
|
+
|
64
|
+
|
65
|
+
アルゴリズムがうまくいっていませんでしたので、修正案を教えていただけると助かります。
|
66
|
+
|
67
|
+
|
68
|
+
|
69
|
+
~~サイコロを4つに増やしてたときに、修正箇所が少なくて済むようにしたいです。~~
|
70
|
+
|
71
|
+
まずは3つで動くようにしたいです。
|
34
72
|
|
35
73
|
|
36
74
|
|
@@ -84,7 +122,9 @@
|
|
84
122
|
|
85
123
|
//通り数
|
86
124
|
|
87
|
-
while (dice[1]>6| dice[2]>1){
|
125
|
+
while (dice[1]>6 || dice[2]>1){
|
126
|
+
|
127
|
+
|
88
128
|
|
89
129
|
dice[2]-=1;
|
90
130
|
|
2
説明文を修正しました 日本語不自由で申し訳ありません。
test
CHANGED
File without changes
|
test
CHANGED
@@ -4,7 +4,25 @@
|
|
4
4
|
|
5
5
|
|
6
6
|
|
7
|
-
サイコロを3つ同時になげて目の和
|
7
|
+
サイコロを3つ同時になげて目の和(x)になるのは何通りあるかのプログラムを書きました
|
8
|
+
|
9
|
+
入力された値をx 何通りあるかをcountにしました。
|
10
|
+
|
11
|
+
サイコロは各1-6まであり
|
12
|
+
|
13
|
+
和の最大数は18
|
14
|
+
|
15
|
+
和の最小値は3
|
16
|
+
|
17
|
+
です
|
18
|
+
|
19
|
+
|
20
|
+
|
21
|
+
例:x=3の時は(1,1,1)しかないのでcount=1
|
22
|
+
|
23
|
+
|
24
|
+
|
25
|
+
|
8
26
|
|
9
27
|
数はあってると思うのですが、ソースコードで、条件式・配列の要素数を直書きしていてあまり良くない気がします。
|
10
28
|
|
1
<code>表記に変更しました。失礼しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -25,6 +25,10 @@
|
|
25
25
|
|
26
26
|
|
27
27
|
### 該当のソースコード
|
28
|
+
|
29
|
+
```java
|
30
|
+
|
31
|
+
|
28
32
|
|
29
33
|
import java.util.*;
|
30
34
|
|
@@ -86,22 +90,16 @@
|
|
86
90
|
|
87
91
|
}else count++;
|
88
92
|
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
93
|
}
|
94
94
|
|
95
95
|
}
|
96
96
|
|
97
97
|
System.out.print(count);
|
98
98
|
|
99
|
-
|
99
|
+
}
|
100
100
|
|
101
|
-
|
101
|
+
}
|
102
102
|
|
103
103
|
|
104
104
|
|
105
|
-
|
105
|
+
```
|
106
|
-
|
107
|
-
}
|