Rubyで小町算
続きまして,1?9までの数字の間に適当に+,-,*,/を挟んで答えを100にする小町算をRubyでやってみました.
class Komachi
def initialize
@result = []
@reg = /(\+|\-|\*|\/)[2-9]/
calc()
calc('-1')
end
attr_reader :result
def calc(string = '1', n = 2)
if n == 10
@result.push(string+"=100") if eval(string.gsub(@reg, '.0\&')) == 100
else
['+', '-', '*', '/', ''].each do |cal|
calc(string + cal + n.to_s, n + 1)
end
end
end
end
komachi = Komachi.new()
komachi.result.each{|s| puts s}
puts komachi.result.size.to_s + '個発見!'
結果は別ファイルにしました.プログラムがあってれば,100になるパターンは162個あるようです.(,)とか累乗とか含めだすともっとありそうですが,めんどくさそうなのでやめておきます.
スポンサーサイト
2006/07/23 19:26 | Ruby | トラックバック(0) | コメント(0)
コメントの投稿
トラックバック
トラックバックURL
→http://relaxedcolumn.blog8.fc2.com/tb.php/76-ea50a49c
コメント