これはハノイの塔です。
その解法を表示します。
再帰呼び出しのサンプルとしてよく使われます。
「ハノイの塔」がなんたるかについてはこちらで↓でどうぞ。
https://ja.wikipedia.org/wiki/%E3%83%8F%E3%83%8E%E3%82%A4%E3%81%AE%E5%A1%94
/* ハノイの塔 for X68
// Oh!X 1988/5 p54
int n
str a="A",b="B",c="C"
while 1
input "n(0=end)=" , n
if n=0 then break
hanoi( n , a ,c , b)
print
endwhile
end
func hanoi(n;int,a;str,c;str,b;str)
if n>0 then {
hanoi(n-1,a,b,c)
print a; "->" ; c; ",";
hanoi(n-1,b,c,a)
}
endfunc
0 件のコメント:
コメントを投稿