読者です 読者をやめる 読者になる 読者になる

本履歴

購入した古本の履歴と時々プログラミング

プログラミングコンテストの練習

ハノイの塔をRubyで。塔といえばこれが一番有名かもしれない、ハノイの塔。(バベルも有名か・・・あ、天国の塔もBGMで)

最初に書いたコード

#move n-th disc from x to y with using z 
def hanoi(n,x,y,z)
	if n==1
		puts "Move disc %d from %d to %d"%[n,x,y]
	else
		hanoi(n-1,x,z,y)
		puts "Move disc %d from %d to %d"%[n,x,y]
		hanoi(n-1,z,y,x)
	end
end

hanoi(5,1,3,2)

もっとうまい方法があった

def hanoi2(n,x,y,z)
	if n>0
		hanoi2(n-1,x,z,y)
		puts "Move disc %d from %d to %d"%[n,x,y]
		hanoi2(n-1,z,y,x)
	end
end

hanoi2(3,1,3,2)