質問編集履歴

5

おちつけ私

2016/03/23 11:59

投稿

torisan
torisan

スコア678

test CHANGED
File without changes
test CHANGED
@@ -152,7 +152,7 @@
152
152
 
153
153
  def mj_arano(arano)
154
154
 
155
- if "00#{val}00".index('00100')
155
+ if "00#{arano}00".index('00100')
156
156
 
157
157
  if arano < 1000000 then
158
158
 

4

改定日、更新し忘れた。。

2016/03/23 11:59

投稿

torisan
torisan

スコア678

test CHANGED
File without changes
test CHANGED
@@ -144,7 +144,7 @@
144
144
 
145
145
  ▼▼追記10/03/21 17:46▼▼
146
146
 
147
- ▼▼改定10/03/22 21:44▼▼
147
+ ▼▼改定10/03/23 20:57▼▼
148
148
 
149
149
  下に長くなったのでまとめたコードを記載しておきます。
150
150
 

3

if "00#{val}00"\.index\('00100'\) 追加

2016/03/23 11:58

投稿

torisan
torisan

スコア678

test CHANGED
File without changes
test CHANGED
@@ -152,84 +152,82 @@
152
152
 
153
153
  def mj_arano(arano)
154
154
 
155
+ if "00#{val}00".index('00100')
156
+
155
- if arano < 1000000 then
157
+ if arano < 1000000 then
156
-
158
+
157
- arano = "00#{arano}00".gsub(/001(?=00)/, '000').to_i
159
+ arano = "00#{arano}00".gsub(/001(?=00)/, '000').to_i
158
-
159
- #後ろ0の削除(2011200 -> 20112)
160
+
160
-
161
- arano /= 10 while (arano % 10) == 0 && arano != 0
162
-
163
- else
161
+ else
164
-
162
+
165
- maisu = [0,0,0,0,0,0,0,0,0,0,0,0,0] # 0 to 12
163
+ maisu = [0,0,0,0,0,0,0,0,0,0,0,0,0] # 0 to 12
166
-
164
+
167
- maisu[2] = arano / 100000000
165
+ maisu[2] = arano / 100000000
168
-
166
+
169
- maisu[3] = (arano / 10000000) % 10
167
+ maisu[3] = (arano / 10000000) % 10
170
-
168
+
171
- maisu[4] = (arano / 1000000) % 10
169
+ maisu[4] = (arano / 1000000) % 10
172
-
170
+
173
- maisu[5] = (arano / 100000) % 10
171
+ maisu[5] = (arano / 100000) % 10
174
-
172
+
175
- maisu[6] = (arano / 10000) % 10
173
+ maisu[6] = (arano / 10000) % 10
176
-
174
+
177
- maisu[7] = (arano / 1000) % 10
175
+ maisu[7] = (arano / 1000) % 10
178
-
176
+
179
- maisu[8] = (arano / 100) % 10
177
+ maisu[8] = (arano / 100) % 10
180
-
178
+
181
- maisu[9] = (arano / 10) % 10
179
+ maisu[9] = (arano / 10) % 10
182
-
180
+
183
- maisu[10] =(arano / 1)
181
+ maisu[10] =(arano / 1)
184
-
182
+
185
- i = 2
183
+ i = 2
186
-
184
+
187
- while i <= 10
185
+ while i <= 10
188
-
186
+
189
- if maisu[i]==1 then
187
+ if maisu[i]==1 then
190
-
188
+
191
- if maisu[i-2]==0 && maisu[i-1]==0 && maisu[i+1]==0 && maisu[i+2]==0 then
189
+ if maisu[i-2]==0 && maisu[i-1]==0 && maisu[i+1]==0 && maisu[i+2]==0 then
192
-
190
+
193
- maisu[i] = 0
191
+ maisu[i] = 0
194
-
192
+
195
- i += 2
193
+ i += 2
194
+
195
+ end
196
196
 
197
197
  end
198
198
 
199
+ i += 1
200
+
199
201
  end
200
202
 
201
- i += 1
203
+ arano = 0
204
+
205
+ arano += maisu[2] * 100000000
206
+
207
+ arano += maisu[3] * 10000000
208
+
209
+ arano += maisu[4] * 1000000
210
+
211
+ arano += maisu[5] * 100000
212
+
213
+ arano += maisu[6] * 10000
214
+
215
+ arano += maisu[7] * 1000
216
+
217
+ arano += maisu[8] * 100
218
+
219
+ arano += maisu[9] * 10
220
+
221
+ arano += maisu[10]
202
222
 
203
223
  end
204
224
 
205
- arano = 0
206
-
207
- arano += maisu[2] * 100000000
208
-
209
- arano += maisu[3] * 10000000
210
-
211
- arano += maisu[4] * 1000000
212
-
213
- arano += maisu[5] * 100000
214
-
215
- arano += maisu[6] * 10000
216
-
217
- arano += maisu[7] * 1000
218
-
219
- arano += maisu[8] * 100
220
-
221
- arano += maisu[9] * 10
222
-
223
- arano += maisu[10]
224
-
225
-
226
-
227
- #後ろ0の削除(2011200 -> 20112)
228
-
229
- arano /= 10 while (arano % 10) == 0 && arano != 0
230
-
231
225
  end
232
226
 
227
+ #後ろ0の削除(2011200 -> 20112)
228
+
229
+ arano /= 10 while (arano % 10) == 0 && arano != 0
230
+
233
231
  end
234
232
 
235
233
  ```

2

最新コード更新

2016/03/23 11:57

投稿

torisan
torisan

スコア678

test CHANGED
File without changes
test CHANGED
@@ -144,21 +144,91 @@
144
144
 
145
145
  ▼▼追記10/03/21 17:46▼▼
146
146
 
147
+ ▼▼改定10/03/22 21:44▼▼
148
+
147
149
  下に長くなったのでまとめたコードを記載しておきます。
148
150
 
149
151
  ```ruby
150
152
 
151
- def mj_arano100(arano)
153
+ def mj_arano(arano)
152
-
154
+
153
- #孤立の1を削除
155
+ if arano < 1000000 then
154
-
156
+
155
- arano = "00#{arano}00".gsub(/001(?=00)/, '000').to_i
157
+ arano = "00#{arano}00".gsub(/001(?=00)/, '000').to_i
156
-
158
+
157
- #後ろ0の削除(2011200 -> 20112)
159
+ #後ろ0の削除(2011200 -> 20112)
158
-
160
+
159
- arano /= 10 while (arano % 10) == 0 && arano != 0
161
+ arano /= 10 while (arano % 10) == 0 && arano != 0
162
+
160
-
163
+ else
164
+
165
+ maisu = [0,0,0,0,0,0,0,0,0,0,0,0,0] # 0 to 12
166
+
167
+ maisu[2] = arano / 100000000
168
+
169
+ maisu[3] = (arano / 10000000) % 10
170
+
171
+ maisu[4] = (arano / 1000000) % 10
172
+
173
+ maisu[5] = (arano / 100000) % 10
174
+
175
+ maisu[6] = (arano / 10000) % 10
176
+
177
+ maisu[7] = (arano / 1000) % 10
178
+
179
+ maisu[8] = (arano / 100) % 10
180
+
181
+ maisu[9] = (arano / 10) % 10
182
+
183
+ maisu[10] =(arano / 1)
184
+
185
+ i = 2
186
+
187
+ while i <= 10
188
+
189
+ if maisu[i]==1 then
190
+
191
+ if maisu[i-2]==0 && maisu[i-1]==0 && maisu[i+1]==0 && maisu[i+2]==0 then
192
+
161
- return arano
193
+ maisu[i] = 0
194
+
195
+ i += 2
196
+
197
+ end
198
+
199
+ end
200
+
201
+ i += 1
202
+
203
+ end
204
+
205
+ arano = 0
206
+
207
+ arano += maisu[2] * 100000000
208
+
209
+ arano += maisu[3] * 10000000
210
+
211
+ arano += maisu[4] * 1000000
212
+
213
+ arano += maisu[5] * 100000
214
+
215
+ arano += maisu[6] * 10000
216
+
217
+ arano += maisu[7] * 1000
218
+
219
+ arano += maisu[8] * 100
220
+
221
+ arano += maisu[9] * 10
222
+
223
+ arano += maisu[10]
224
+
225
+
226
+
227
+ #後ろ0の削除(2011200 -> 20112)
228
+
229
+ arano /= 10 while (arano % 10) == 0 && arano != 0
230
+
231
+ end
162
232
 
163
233
  end
164
234
 

1

纏めたコードを記載

2016/03/22 12:45

投稿

torisan
torisan

スコア678

test CHANGED
File without changes
test CHANGED
@@ -139,3 +139,27 @@
139
139
  mj_arano(okuri) # 0
140
140
 
141
141
  ```
142
+
143
+
144
+
145
+ ▼▼追記10/03/21 17:46▼▼
146
+
147
+ 下に長くなったのでまとめたコードを記載しておきます。
148
+
149
+ ```ruby
150
+
151
+ def mj_arano100(arano)
152
+
153
+ #孤立の1を削除
154
+
155
+ arano = "00#{arano}00".gsub(/001(?=00)/, '000').to_i
156
+
157
+ #後ろ0の削除(2011200 -> 20112)
158
+
159
+ arano /= 10 while (arano % 10) == 0 && arano != 0
160
+
161
+ return arano
162
+
163
+ end
164
+
165
+ ```