function hannoi(n)
if nargin == 0
n = 3;
end
move(n,'A','B','C');
% 将n个碟子从a经过b移动到c
function move(n,a,b,c)
% 如果是一个碟子,直接从a移动到c
if n == 1
fprintf('将 1 号碟子从%s ---> %s\n',a,c);
else
% 否则,先将n-1个碟子从A经过C移动到B
move(n-1,a,c,b);
% 将第n个碟子从A移动到C
fprintf('将 %d 号碟子从%s ---> %s\n',n,a,c);
% 将n-1个碟子从B经过A移动到C
move(n-1,b,a,c);
end
end
end
Matlab 编写的求汉诺塔的小程序
最新推荐文章于 2022-04-21 22:58:01 发布