#/*********************************************************** # hanoi.rb -- ハノイの塔 #***********************************************************/ def movedisk( n, a, b) if (n > 1); movedisk(n - 1, a, 6 - a - b); end printf("円盤 %d を %d から %d に移す\n", n, a, b) if (n > 1); movedisk(n - 1, 6 - a - b, b); end end printf("円盤の枚数? "); n = gets.to_i printf("円盤 %d 枚を柱 1 から柱 2 に移す方法は次の %d 手です.\n", n, (2**n - 1)) movedisk(n, 1, 2) exit 0