1. 程式人生 > >Matlab 編寫的求漢諾塔的小程式

Matlab 編寫的求漢諾塔的小程式

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