2016年3月28日月曜日

160328(3)

Ruby


12 = 3 * 4(4)

出力の順番を変えてみた。

# a = b * cは正しい?
def f(a, b, c)
  return "#{a} = #{b} * #{c}" if a == b * c
  "false"
end

def g(m, n, k)
  a = (['1'] * m + ['2'] * m).rotate(k)
  a1 = (a[0..m - 1] + ['3'] * (m * (n - 1)) + a[m..-1]).join
  b = '3' * m
  c = a1.to_i / b.to_i
  f(a1.to_i, b.to_i, c.to_i)
end

(1..4).each{|n| (1..4).each{|m| (0..2 * m - 1).each{|k| puts g(m, n, k)}}}

出力結果
12 = 3 * 4
21 = 3 * 7
1122 = 33 * 34
1221 = 33 * 37
2211 = 33 * 67
2112 = 33 * 64
111222 = 333 * 334
112221 = 333 * 337
122211 = 333 * 367
222111 = 333 * 667
221112 = 333 * 664
211122 = 333 * 634
11112222 = 3333 * 3334
11122221 = 3333 * 3337
11222211 = 3333 * 3367
12222111 = 3333 * 3667
22221111 = 3333 * 6667
22211112 = 3333 * 6664
22111122 = 3333 * 6634
21111222 = 3333 * 6334
132 = 3 * 44
231 = 3 * 77
113322 = 33 * 3434
123321 = 33 * 3737
223311 = 33 * 6767
213312 = 33 * 6464
111333222 = 333 * 334334
112333221 = 333 * 337337
122333211 = 333 * 367367
222333111 = 333 * 667667
221333112 = 333 * 664664
211333122 = 333 * 634634
111133332222 = 3333 * 33343334
111233332221 = 3333 * 33373337
112233332211 = 3333 * 33673367
122233332111 = 3333 * 36673667
222233331111 = 3333 * 66676667
222133331112 = 3333 * 66646664
221133331122 = 3333 * 66346634
211133331222 = 3333 * 63346334
1332 = 3 * 444
2331 = 3 * 777
11333322 = 33 * 343434
12333321 = 33 * 373737
22333311 = 33 * 676767
21333312 = 33 * 646464
111333333222 = 333 * 334334334
112333333221 = 333 * 337337337
122333333211 = 333 * 367367367
222333333111 = 333 * 667667667
221333333112 = 333 * 664664664
211333333122 = 333 * 634634634
1111333333332222 = 3333 * 333433343334
1112333333332221 = 3333 * 333733373337
1122333333332211 = 3333 * 336733673367
1222333333332111 = 3333 * 366736673667
2222333333331111 = 3333 * 666766676667
2221333333331112 = 3333 * 666466646664
2211333333331122 = 3333 * 663466346634
2111333333331222 = 3333 * 633463346334
13332 = 3 * 4444
23331 = 3 * 7777
1133333322 = 33 * 34343434
1233333321 = 33 * 37373737
2233333311 = 33 * 67676767
2133333312 = 33 * 64646464
111333333333222 = 333 * 334334334334
112333333333221 = 333 * 337337337337
122333333333211 = 333 * 367367367367
222333333333111 = 333 * 667667667667
221333333333112 = 333 * 664664664664
211333333333122 = 333 * 634634634634
11113333333333332222 = 3333 * 3334333433343334
11123333333333332221 = 3333 * 3337333733373337
11223333333333332211 = 3333 * 3367336733673367
12223333333333332111 = 3333 * 3667366736673667
22223333333333331111 = 3333 * 6667666766676667
22213333333333331112 = 3333 * 6664666466646664
22113333333333331122 = 3333 * 6634663466346634
21113333333333331222 = 3333 * 6334633463346334

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。