主题:请问汉诺塔问题怎么解决
			 Puge
				 [专家分:0]  发布于 2005-04-19 13:55:00
 Puge
				 [专家分:0]  发布于 2005-04-19 13:55:00							
			要求:任意输入一个层数。
						
					 
		
			
回复列表 (共2个回复)
		
								
				沙发
				
					 小小的草根 [专家分:0]  发布于 2005-04-20 21:39:00
小小的草根 [专家分:0]  发布于 2005-04-20 21:39:00				
				var n:integer;
    x,y,z:char;
procedure hanoi(n:integer;x,y,z:char);
begin
     if n=1 then writeln(1:4,'pan  from ',x,' to ',z)
            else
                begin
                     hanoi(n-1,x,z,y);
                     writeln(n:4,'pan  from ',x,' to ',z);
                     hanoi(n-1,y,x,z);
                end;
end;
begin
     read(n);
     x:='x';
     y:='y';
     z:='z';
     hanoi(n,x,y,z);
end.
							 
						
				板凳
				
					 lyn532226 [专家分:230]  发布于 2005-04-22 12:43:00
lyn532226 [专家分:230]  发布于 2005-04-22 12:43:00				
				[em8]我是个菜鸟,但我也来试下。[em2]
program hanio;
 var
   i:integer;
 procedure move(n,a,b,c:integer);
 begin    
   if n=1 
     then writeln(a,'-->',c)
   else begin
     move(n-1,a,c,b);
     writeln(a,'-->',c);
     move(n-1,b,a,c);
        end;
 end;
begin
  writeln('Input chenshu');
  read(i);
  move(n,1,2,3);
end.
							 
									
			
我来回复