Ruby -> Ruby, 8
#Convert a number from 0 to 255 to the form "111+11+11+1+1+1"
def byte_to_ones(byte)
output = []
ones = [111,11,1]
ones.each do |one|
while byte>=one
byte-=one
output<<one
end
end
output.join('+')
end
bytes = $<.each_byte.map { |byte| byte_to_ones(byte) }
puts "eval''<<#{bytes.join('<<')}"
Sample:
puts "Hello, world!" => eval''<<111+1<<111+1+1+1+1+1+1<<111+1+1+1+1+1<<111+1+1+1+1<<11+11+1+1+1+1+1+1+1+1+1+1<<11+11+11+1<<11+11+11+11+11+11+1+1+1+1+1+1<<11+11+11+11+11+11+11+11+11+1+1<<11+11+11+11+11+11+11+11+11+1+1+1+1+1+1+1+1+1<<11+11+11+11+11+11+11+11+11+1+1+1+1+1+1+1+1+1<<111<<11+11+11+11<<11+11+1+1+1+1+1+1+1+1+1+1<<111+1+1+1+1+1+1+1+1<<111<<111+1+1+1<<11+11+11+11+11+11+11+11+11+1+1+1+1+1+1+1+1+1<<11+11+11+11+11+11+11+11+11+1<<11+11+11<<11+11+11+1<<1+1+1+1+1+1+1+1+1+1
Implements the Ruby solution given in the linked problemthe linked problem and replaces I/O with eval.