回答編集履歴
4
修正
answer
CHANGED
@@ -34,6 +34,6 @@
|
|
34
34
|
|
35
35
|
```JavaScript
|
36
36
|
let rand1 = num1 > 1
|
37
|
-
? Math.floor(Math.random() * (10 ** (num1 - 1) * 9)) + 10 ** (num1 - 1)
|
37
|
+
? Math.floor(Math.random() * (10 ** (num1 - 1) * 9)) + 10 ** (num1 - 1)
|
38
38
|
: Math.floor(Math.random() * 10);
|
39
39
|
```
|
3
追記
answer
CHANGED
@@ -28,4 +28,12 @@
|
|
28
28
|
|
29
29
|
```JavaScript
|
30
30
|
let rand1 = Math.floor(Math.random() * 10);
|
31
|
+
```
|
32
|
+
|
33
|
+
これらを合わせると以下のようになります。三項条件演算子を使わず式を立てることもできますが、無理なことをするよりもこの方が可読性が高いでしょう。なお、以下の式は、num1 が 1 未満であった場合、1 であるとみなしたものになります。
|
34
|
+
|
35
|
+
```JavaScript
|
36
|
+
let rand1 = num1 > 1
|
37
|
+
? Math.floor(Math.random() * (10 ** (num1 - 1) * 9)) + 10 ** (num1 - 1);
|
38
|
+
: Math.floor(Math.random() * 10);
|
31
39
|
```
|
2
修正
answer
CHANGED
@@ -12,8 +12,8 @@
|
|
12
12
|
+ (10 ** (num1 - 1));
|
13
13
|
```
|
14
14
|
|
15
|
-
後半が打ち消しあってますね。
|
15
|
+
後半が打ち消しあってますね。これが原因で、0 以上 10 ** num1 未満の乱数が出ています。次に対策ですが、
|
16
|
-
1 桁の数は 0 を含め 10 個
|
16
|
+
1 桁の数は 1 から 9 の 9 個に 0 を含め 10 個
|
17
17
|
2 桁の数は 10 から 99 の 90 個
|
18
18
|
3 桁の数は 100 から 999 の 900 個
|
19
19
|
|
1
修正
answer
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
let rand1 = Math.floor( Math.random() * (10 ** num1) - (10 ** (num1 - 1))) + (10 ** (num1 - 1));
|
5
5
|
```
|
6
6
|
|
7
|
-
これの形を変えると次のようになります。
|
7
|
+
これの形を変えると次のようになります。マイナスしている部分はカッコから出しても同じなので出します。
|
8
8
|
|
9
9
|
```JavaScript
|
10
10
|
let rand1 = Math.floor( Math.random() * (10 ** num1))
|