gem algorithms010 读然后学着写03
#1000日元换成最多15种硬币(10,50,100,500)
(0..100).each do |i|
(0..20).each do |j|
(0..10).each do |k|
(0..2).each do |m|
if i*10+j*50+k*100+m*500==1000 and
i+j+k+m <=15
puts "#{i}*10+#{j}*50+#{k}*10+#{m}*500==1000\n"
end
end
end
end
end
问题6:考拉兹猜想
算得太慢了。
def caixiang(num)
arr=[]
old_num=num
arr << num
if num%2==0
num =num*3+1
end
while num!=old_num
arr << num
if num%2==0
num /= 2
else
num = num*3+1
end
end
arr << num
arr
end
puts caixiang(2).to_s
2.step(10000,2) do |i|
a=caixiang(i)
if a[-1]==i
puts i
end
end
日期转为整数不会做。其它的应该象这样:
num=19660713
puts num.to_s(2).reverse.to_i(2)