发布网友 发布时间:2024-10-13 00:09
共2个回答
热心网友 时间:2024-10-13 04:08
问题分析] 这个问题可以发现一些规律,要把n移动(a->c),即进行以下操作:n-1(a->b);n(a->c);n-1(b->c).形成递归.
program hanoitower;
uses crt;
var n:integer;
procedure hanoi(x:integer;a,b,c:char);
begin
if x=1 then write(' ',a,' -> ',c,' ') else
begin
hanoi(x-1,a,c,b);
write(' ',a,' -> ',c,' ');
hanoi(x-1,b,a,c);
end;
end;
begin
clrscr;
write('Hanoi tower,Please input n:');
readln(n);
hanoi(n,'a','b','c');
readln;
end.
热心网友 时间:2024-10-13 04:02
其实可以直接用math单元的计算x的y次方函数