回答編集履歴

20

テキスト追加

2020/03/22 00:15

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -70,7 +70,7 @@
70
70
 
71
71
 
72
72
 
73
- (※上記のコードを、[https://jsfiddle.net/jun68ykt/w5ovpba6/5/](https://jsfiddle.net/jun68ykt/w5ovpba6/5/) にも上げました。)
73
+ (※上記のコードを、[https://codepen.io/jun68ykt/pen/gOpdMPQ?editors=0012](https://codepen.io/jun68ykt/pen/gOpdMPQ?editors=0012) にも上げました。)
74
74
 
75
75
 
76
76
 

19

テキスト修正

2020/03/22 00:15

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -106,7 +106,7 @@
106
106
 
107
107
 
108
108
 
109
- ことを利用しています。具体的には 4桁の数 `n` から、以下のつ数
109
+ ことを利用しています。具体的には 4桁の数 `n` から、以下の(ともに3桁)
110
110
 
111
111
 
112
112
 
@@ -118,7 +118,7 @@
118
118
 
119
119
 
120
120
 
121
- を作り、これら2つ数の
121
+ を作り、これらの
122
122
 
123
123
 
124
124
 

18

テキスト修正

2018/06/25 23:17

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -16,7 +16,7 @@
16
16
 
17
17
 
18
18
 
19
- 上記を前提として、以下のような方法を考えました。
19
+ 上記を前提として、以下のような `checkNum` の実装を考えました。
20
20
 
21
21
 
22
22
 
@@ -42,7 +42,7 @@
42
42
 
43
43
  */
44
44
 
45
- const check = n => [Math.floor(n / 10), n % 1000].every(x => (x - 12) % 111);
45
+ const checkNum = n => [Math.floor(n / 10), n % 1000].every(x => (x - 12) % 111);
46
46
 
47
47
 
48
48
 

17

テキスト修正

2018/06/24 21:32

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -26,7 +26,7 @@
26
26
 
27
27
  /*
28
28
 
29
- * check(n)
29
+ * checkNum(n)
30
30
 
31
31
  *
32
32
 
@@ -62,7 +62,7 @@
62
62
 
63
63
  ].forEach(e => {
64
64
 
65
- console.log(`${check(e) ? 'OK' : 'ERROR'}: ${e}`);
65
+ console.log(`${checkNum(e) ? 'OK' : 'ERROR'}: ${e}`);
66
66
 
67
67
  });
68
68
 
@@ -70,7 +70,7 @@
70
70
 
71
71
 
72
72
 
73
- (※上記のコードを、[https://jsfiddle.net/jun68ykt/w5ovpba6/4/](https://jsfiddle.net/jun68ykt/w5ovpba6/4/) にも上げました。)
73
+ (※上記のコードを、[https://jsfiddle.net/jun68ykt/w5ovpba6/5/](https://jsfiddle.net/jun68ykt/w5ovpba6/5/) にも上げました。)
74
74
 
75
75
 
76
76
 
@@ -130,7 +130,7 @@
130
130
 
131
131
 
132
132
 
133
- 返すように、`check(n)` を作成しました。
133
+ 返すように、`checkNum(n)` を作成しました。
134
134
 
135
135
 
136
136
 
@@ -150,7 +150,7 @@
150
150
 
151
151
  従って、たとえば 9001 は連続した3つの数を含んでいなくても、
152
152
 
153
- `check(9001)` は `false`を返しますが、
153
+ 上記回答の `checkNum(9001)` は `false`を返しますが、
154
154
 
155
155
  ご質問の中に
156
156
 
@@ -162,4 +162,4 @@
162
162
 
163
163
  とあるので、 9001 のほか、 9008 や 2900 などは0 を2つ含むので、
164
164
 
165
- チェック対象の数(`check(n)` の引数 `n` )としては考慮していません。
165
+ チェック対象の数(`checkNum(n)` の引数 `n` )としては考慮していません。

16

テキスト修正

2018/06/24 21:30

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -42,7 +42,7 @@
42
42
 
43
43
  */
44
44
 
45
- const check = n => [Math.floor(n / 10), n % 1000].every(e => (e - 12) % 111);
45
+ const check = n => [Math.floor(n / 10), n % 1000].every(x => (x - 12) % 111);
46
46
 
47
47
 
48
48
 
@@ -70,7 +70,7 @@
70
70
 
71
71
 
72
72
 
73
- (※上記のコードを、[https://jsfiddle.net/jun68ykt/w5ovpba6/2/](https://jsfiddle.net/jun68ykt/w5ovpba6/2/) にも上げました。)
73
+ (※上記のコードを、[https://jsfiddle.net/jun68ykt/w5ovpba6/4/](https://jsfiddle.net/jun68ykt/w5ovpba6/4/) にも上げました。)
74
74
 
75
75
 
76
76
 
@@ -106,11 +106,13 @@
106
106
 
107
107
 
108
108
 
109
- ことを利用して4桁の数 `n` から、以下の2つ数
109
+ ことを利用しています。具体的には 4桁の数 `n` から、以下の2つ数
110
110
 
111
111
 
112
112
 
113
113
  - 先頭3文字の数: `Math.floor(n / 10)`
114
+
115
+  
114
116
 
115
117
  - 末尾3文字の数: `n % 1000`
116
118
 
@@ -120,9 +122,11 @@
120
122
 
121
123
 
122
124
 
123
- - 両方ともに、12引いてから 111で割ると割り切れないならば true を
125
+ - 両方ともに、12引いてから 111で割ると割り切れないならば true を
124
126
 
127
+  
128
+
125
- - いずれかが、 12引いてから 111で割ると割り切れるならば false を
129
+ - いずれかが、 12引いてから 111で割ると割り切れるならば false を
126
130
 
127
131
 
128
132
 

15

テキスト追加

2018/06/24 14:50

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -100,9 +100,9 @@
100
100
 
101
101
 
102
102
 
103
-   **3桁の数 x について、x が連続する数字3つで構成されるならば、(x - 12) は 111 で割り切れる**
103
+   **3桁の__x__ について、__x__ が連続する数字3つで構成されるならば、( __x__ - 12 ) は 111 で割り切れる**
104
104
 
105
- ( 例: x = 567 とすると、(567 - 12) ÷ 111 = 555 ÷ 111 = 5 余り 0 )
105
+ ( 例: __x__ = 567 とすると、(567 - 12) ÷ 111 = 555 ÷ 111 = 5 余り 0 )
106
106
 
107
107
 
108
108
 

14

テキスト追加

2018/06/21 01:23

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -12,7 +12,7 @@
12
12
 
13
13
  を、`1ずつ増えていく、0以上9以下の整数を項とする数列` と解釈しています。以下の回答の文中に
14
14
 
15
- 出てくる `連続する数字` も同様に、1ずつ**増える**、2個以上の整数を意味します。
15
+ 出てくる "`連続する数字`" も同様に、1ずつ**増える**、2個以上の整数を意味します。
16
16
 
17
17
 
18
18
 

13

テキスト追加

2018/06/21 01:20

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -10,7 +10,9 @@
10
10
 
11
11
 
12
12
 
13
- を、`1ずつ増えていく、0以上9以下の整数を項とする数列` と解釈しています。
13
+ を、`1ずつ増えていく、0以上9以下の整数を項とする数列` と解釈しています。以下の回答の文中に
14
+
15
+ 出てくる `連続する数字` も同様に、1ずつ**増える**、2個以上の整数を意味します。
14
16
 
15
17
 
16
18
 

12

テキスト追加

2018/06/21 01:18

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -2,7 +2,19 @@
2
2
 
3
3
 
4
4
 
5
+ この回答の前提として、ご質問にある
6
+
7
+
8
+
9
+ > 続き数字
10
+
11
+
12
+
13
+ を、`1ずつ増えていく、0以上9以下の整数を項とする数列` と解釈しています。
14
+
15
+
16
+
5
- 以下のような方法を考えました。
17
+ 上記を前提として、以下のような方法を考えました。
6
18
 
7
19
 
8
20
 

11

テキスト修正

2018/06/21 01:14

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -88,7 +88,7 @@
88
88
 
89
89
    **3桁の数 x について、x が連続する数字3つで構成されるならば、(x - 12) は 111 で割り切れる**
90
90
 
91
- ( 例: x = 567 とすると、(567-12) / 111 = 555 / 111 = 5 余り 0 )
91
+ ( 例: x = 567 とすると、(567 - 12) ÷ 111 = 555 ÷ 111 = 5 余り 0 )
92
92
 
93
93
 
94
94
 

10

テキスト修正

2018/06/20 19:37

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -86,11 +86,9 @@
86
86
 
87
87
 
88
88
 
89
-   **3桁の数 x について、x が ** (たとえば 567のように)
89
+   **3桁の数 x について、x が連続する数字3つで構成されるならば、(x - 12) は 111 で割り切れる**
90
90
 
91
- **連続する数字3つで構成されるならば、(x - 12) は 111 で割り切れる**
92
-
93
- ( 例: (567-12) / 111 = 555 / 111 = 5 余り 0 )
91
+ ( 例: x = 567 とすると、(567-12) / 111 = 555 / 111 = 5 余り 0 )
94
92
 
95
93
 
96
94
 

9

テキスト修正

2018/06/20 19:32

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -90,6 +90,8 @@
90
90
 
91
91
  **連続する数字3つで構成されるならば、(x - 12) は 111 で割り切れる**
92
92
 
93
+ ( 例: (567-12) / 111 = 555 / 111 = 5 余り 0 )
94
+
93
95
 
94
96
 
95
97
  ことを利用して、4桁の数 `n` から、以下の2つ数

8

テキスト修正

2018/06/20 19:31

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -78,31 +78,41 @@
78
78
 
79
79
 
80
80
 
81
+
82
+
81
- 以下、考え方の説明です。
83
+ 考え方としては、
84
+
85
+
82
86
 
83
87
 
84
88
 
85
- `check(n)` は、
89
+   **3桁のx について、x が ** (たとえば 567のように)
90
+
91
+ **連続する数字3つで構成されるならば、(x - 12) は 111 で割り切れる**
86
92
 
87
93
 
88
94
 
89
-   **3桁の数 x いて、x が連続する字3つで構成されるならば、(x - 12) は 111 で割り切れる**
95
+ ことを利用して、4桁の数 `n` から、以下の2つ数
90
96
 
91
97
 
92
98
 
93
- ことを使って、 引数の4桁の数 `n` を、先頭3文字の数 `Math.floor(n / 10)` と、
99
+ - 先頭3文字の数: `Math.floor(n / 10)`
94
100
 
95
- 末尾3文字の数 `n % 1000` とに分け、これら2つの数の
101
+ - 末尾3文字の数: `n % 1000`
96
102
 
97
103
 
98
104
 
99
- - 両方ともに、 「12引いてから、111で割ると割り切れない」を満たすときに true を、
100
-
101
- - いずかが 「12引いてか、111で割ると割り切れる」を満たすときに false を、
105
+ を作り、これら2つの数の
102
106
 
103
107
 
104
108
 
109
+ - 両方ともに、12引いてから 111で割ると割り切れないならば true を、
110
+
111
+ - いずれかが、 12引いてから 111で割ると割り切れるならば false を、
112
+
113
+
114
+
105
- 返すようにしてい
115
+ 返すように、`check(n)` を作成しました
106
116
 
107
117
 
108
118
 

7

テキスト修正

2018/06/20 19:25

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -78,9 +78,11 @@
78
78
 
79
79
 
80
80
 
81
+ 以下、考え方の説明です。
81
82
 
82
83
 
84
+
83
- 考え方としては、関数 `check(n)` は、
85
+ 関数 `check(n)` は、
84
86
 
85
87
 
86
88
 

6

テキスト修正

2018/06/20 18:48

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -116,7 +116,7 @@
116
116
 
117
117
 
118
118
 
119
- 900 は、12を引くと888で、888 は 111で割り切れます。
119
+ 900 から 12を引くと 888で、888 は 111で割り切れます。
120
120
 
121
121
  従って、たとえば 9001 は連続した3つの数を含んでいなくても、
122
122
 

5

テキスト修正

2018/06/20 18:39

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -116,7 +116,7 @@
116
116
 
117
117
 
118
118
 
119
- 900 は、12を引くと888なので、111で割り切れます。
119
+ 900 は、12を引くと888で、888 は 111で割り切れます。
120
120
 
121
121
  従って、たとえば 9001 は連続した3つの数を含んでいなくても、
122
122
 

4

テキスト修正

2018/06/20 18:38

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -94,9 +94,9 @@
94
94
 
95
95
 
96
96
 
97
- - 両方ともに、 「12引いてから、111で割ると割り切れない」を満たすときに trueを、
97
+ - 両方ともに、 「12引いてから、111で割ると割り切れない」を満たすときに true を、
98
98
 
99
- - いずれかが 「12引いてから、111で割ると割り切れる」を満たすときに false を、
99
+ - いずれかが 「12引いてから、111で割ると割り切れる」を満たすときに false を、
100
100
 
101
101
 
102
102
 

3

テキスト修正

2018/06/20 18:31

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -118,11 +118,11 @@
118
118
 
119
119
  900 は、12を引くと888なので、111で割り切れます。
120
120
 
121
- 従って、 たとえば、check(9001) は、
121
+ 従って、たとえば 9001 は連続した3つの数を含んでいなくても
122
122
 
123
- 連続した3つの数を含まなくても、falseを返しますが、
123
+ `check(9001)` は `false`を返しますが、
124
124
 
125
- 質問の中に
125
+ 質問の中に
126
126
 
127
127
 
128
128
 
@@ -130,8 +130,6 @@
130
130
 
131
131
 
132
132
 
133
- とあるので、 9001 のほか、 9008 や 2900 などは、
133
+ とあるので、 9001 のほか、 9008 や 2900 などは0 を2つ含むので
134
134
 
135
- 0 を2つ含むので、チェック対象の数としては考慮して
135
+ チェック対象の数(`check(n)` の引数 `n` )としては考慮していません。
136
-
137
- いません。

2

テキスト修正

2018/06/20 18:29

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -107,3 +107,31 @@
107
107
   
108
108
 
109
109
  以上、参考になれば幸いです。
110
+
111
+
112
+
113
+ ---
114
+
115
+ **補足**
116
+
117
+
118
+
119
+ 900 は、12を引くと888なので、111で割り切れます。
120
+
121
+ 従って、 たとえば、check(9001) は、
122
+
123
+ 連続した3つの数を含まなくても、falseを返しますが、
124
+
125
+ 質問の中に
126
+
127
+
128
+
129
+ > 前提条件としては数字の中には同じ数字は含まれません。
130
+
131
+
132
+
133
+ とあるので、 9001 のほか、 9008 や 2900 などは、
134
+
135
+ 0 を2つ含むので、チェック対象の数字としては考慮して
136
+
137
+ いません。

1

テキスト修正

2018/06/20 18:24

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -88,7 +88,7 @@
88
88
 
89
89
 
90
90
 
91
- こと使って、 引数の4桁の数 `n` を、先頭3文字の数 `Math.floor(n / 10)` と、
91
+ こと使って、 引数の4桁の数 `n` を、先頭3文字の数 `Math.floor(n / 10)` と、
92
92
 
93
93
  末尾3文字の数 `n % 1000` とに分け、これら2つの数の
94
94