質問するログイン新規登録

質問編集履歴

5

おちつけ私

2016/03/23 11:59

投稿

torisan
torisan

スコア678

title CHANGED
File without changes
body CHANGED
@@ -75,7 +75,7 @@
75
75
  下に長くなったのでまとめたコードを記載しておきます。
76
76
  ```ruby
77
77
  def mj_arano(arano)
78
- if "00#{val}00".index('00100')
78
+ if "00#{arano}00".index('00100')
79
79
  if arano < 1000000 then
80
80
  arano = "00#{arano}00".gsub(/001(?=00)/, '000').to_i
81
81
  else

4

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

2016/03/23 11:59

投稿

torisan
torisan

スコア678

title CHANGED
File without changes
body CHANGED
@@ -71,7 +71,7 @@
71
71
  ```
72
72
 
73
73
  ▼▼追記10/03/21 17:46▼▼
74
- ▼▼改定10/03/22 21:44▼▼
74
+ ▼▼改定10/03/23 20:57▼▼
75
75
  下に長くなったのでまとめたコードを記載しておきます。
76
76
  ```ruby
77
77
  def mj_arano(arano)

3

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

2016/03/23 11:58

投稿

torisan
torisan

スコア678

title CHANGED
File without changes
body CHANGED
@@ -75,44 +75,43 @@
75
75
  下に長くなったのでまとめたコードを記載しておきます。
76
76
  ```ruby
77
77
  def mj_arano(arano)
78
+ if "00#{val}00".index('00100')
78
- if arano < 1000000 then
79
+ if arano < 1000000 then
79
- arano = "00#{arano}00".gsub(/001(?=00)/, '000').to_i
80
+ arano = "00#{arano}00".gsub(/001(?=00)/, '000').to_i
80
- #後ろ0の削除(2011200 -> 20112)
81
- arano /= 10 while (arano % 10) == 0 && arano != 0
82
- else
81
+ else
83
- maisu = [0,0,0,0,0,0,0,0,0,0,0,0,0] # 0 to 12
82
+ maisu = [0,0,0,0,0,0,0,0,0,0,0,0,0] # 0 to 12
84
- maisu[2] = arano / 100000000
83
+ maisu[2] = arano / 100000000
85
- maisu[3] = (arano / 10000000) % 10
84
+ maisu[3] = (arano / 10000000) % 10
86
- maisu[4] = (arano / 1000000) % 10
85
+ maisu[4] = (arano / 1000000) % 10
87
- maisu[5] = (arano / 100000) % 10
86
+ maisu[5] = (arano / 100000) % 10
88
- maisu[6] = (arano / 10000) % 10
87
+ maisu[6] = (arano / 10000) % 10
89
- maisu[7] = (arano / 1000) % 10
88
+ maisu[7] = (arano / 1000) % 10
90
- maisu[8] = (arano / 100) % 10
89
+ maisu[8] = (arano / 100) % 10
91
- maisu[9] = (arano / 10) % 10
90
+ maisu[9] = (arano / 10) % 10
92
- maisu[10] =(arano / 1)
91
+ maisu[10] =(arano / 1)
93
- i = 2
92
+ i = 2
94
- while i <= 10
93
+ while i <= 10
95
- if maisu[i]==1 then
94
+ if maisu[i]==1 then
96
- if maisu[i-2]==0 && maisu[i-1]==0 && maisu[i+1]==0 && maisu[i+2]==0 then
95
+ if maisu[i-2]==0 && maisu[i-1]==0 && maisu[i+1]==0 && maisu[i+2]==0 then
97
- maisu[i] = 0
96
+ maisu[i] = 0
98
- i += 2
97
+ i += 2
98
+ end
99
99
  end
100
+ i += 1
100
101
  end
101
- i += 1
102
+ arano = 0
103
+ arano += maisu[2] * 100000000
104
+ arano += maisu[3] * 10000000
105
+ arano += maisu[4] * 1000000
106
+ arano += maisu[5] * 100000
107
+ arano += maisu[6] * 10000
108
+ arano += maisu[7] * 1000
109
+ arano += maisu[8] * 100
110
+ arano += maisu[9] * 10
111
+ arano += maisu[10]
102
112
  end
103
- arano = 0
104
- arano += maisu[2] * 100000000
105
- arano += maisu[3] * 10000000
106
- arano += maisu[4] * 1000000
107
- arano += maisu[5] * 100000
108
- arano += maisu[6] * 10000
109
- arano += maisu[7] * 1000
110
- arano += maisu[8] * 100
111
- arano += maisu[9] * 10
112
- arano += maisu[10]
113
-
114
- #後ろ0の削除(2011200 -> 20112)
115
- arano /= 10 while (arano % 10) == 0 && arano != 0
116
113
  end
114
+ #後ろ0の削除(2011200 -> 20112)
115
+ arano /= 10 while (arano % 10) == 0 && arano != 0
117
116
  end
118
117
  ```

2

最新コード更新

2016/03/23 11:57

投稿

torisan
torisan

スコア678

title CHANGED
File without changes
body CHANGED
@@ -71,13 +71,48 @@
71
71
  ```
72
72
 
73
73
  ▼▼追記10/03/21 17:46▼▼
74
+ ▼▼改定10/03/22 21:44▼▼
74
75
  下に長くなったのでまとめたコードを記載しておきます。
75
76
  ```ruby
76
- def mj_arano100(arano)
77
+ def mj_arano(arano)
77
- #孤立の1を削除
78
+ if arano < 1000000 then
78
- arano = "00#{arano}00".gsub(/001(?=00)/, '000').to_i
79
+ arano = "00#{arano}00".gsub(/001(?=00)/, '000').to_i
79
- #後ろ0の削除(2011200 -> 20112)
80
+ #後ろ0の削除(2011200 -> 20112)
80
- arano /= 10 while (arano % 10) == 0 && arano != 0
81
+ arano /= 10 while (arano % 10) == 0 && arano != 0
82
+ else
83
+ maisu = [0,0,0,0,0,0,0,0,0,0,0,0,0] # 0 to 12
84
+ maisu[2] = arano / 100000000
85
+ maisu[3] = (arano / 10000000) % 10
86
+ maisu[4] = (arano / 1000000) % 10
87
+ maisu[5] = (arano / 100000) % 10
88
+ maisu[6] = (arano / 10000) % 10
89
+ maisu[7] = (arano / 1000) % 10
90
+ maisu[8] = (arano / 100) % 10
91
+ maisu[9] = (arano / 10) % 10
92
+ maisu[10] =(arano / 1)
93
+ i = 2
94
+ while i <= 10
95
+ if maisu[i]==1 then
96
+ if maisu[i-2]==0 && maisu[i-1]==0 && maisu[i+1]==0 && maisu[i+2]==0 then
81
- return arano
97
+ maisu[i] = 0
98
+ i += 2
99
+ end
100
+ end
101
+ i += 1
102
+ end
103
+ arano = 0
104
+ arano += maisu[2] * 100000000
105
+ arano += maisu[3] * 10000000
106
+ arano += maisu[4] * 1000000
107
+ arano += maisu[5] * 100000
108
+ arano += maisu[6] * 10000
109
+ arano += maisu[7] * 1000
110
+ arano += maisu[8] * 100
111
+ arano += maisu[9] * 10
112
+ arano += maisu[10]
113
+
114
+ #後ろ0の削除(2011200 -> 20112)
115
+ arano /= 10 while (arano % 10) == 0 && arano != 0
116
+ end
82
117
  end
83
118
  ```

1

纏めたコードを記載

2016/03/22 12:45

投稿

torisan
torisan

スコア678

title CHANGED
File without changes
body CHANGED
@@ -68,4 +68,16 @@
68
68
 
69
69
  okuri=10010001
70
70
  mj_arano(okuri) # 0
71
+ ```
72
+
73
+ ▼▼追記10/03/21 17:46▼▼
74
+ 下に長くなったのでまとめたコードを記載しておきます。
75
+ ```ruby
76
+ def mj_arano100(arano)
77
+ #孤立の1を削除
78
+ arano = "00#{arano}00".gsub(/001(?=00)/, '000').to_i
79
+ #後ろ0の削除(2011200 -> 20112)
80
+ arano /= 10 while (arano % 10) == 0 && arano != 0
81
+ return arano
82
+ end
71
83
  ```