1 条题解

  • 0
    @ 2025-4-12 21:45:16

    C :

    #include<stdio.h>
    void hanoi(int n,char x,char y,char z);
    void move(char a,char b);
    
    int main()
    {
    	int n;
    	scanf("%d",&n);
    	hanoi(n,'A','B','C');
    	return 0;
    }
    
    void hanoi(int n,char x,char y,char z)
    {
    	if(n==1)
    		move(x,z);
    	else
    	{
    		hanoi(n-1,x,z,y);
    		move(x,z);
    		hanoi(n-1,y,x,z);
    	}
    }
    
    void move(char a,char b)
    {
    	printf("%c->%c\n",a,b);
    }
    

    C++ :

    #include <stdio.h>
    void move(char x, char y) {
    	printf("%c->%c\n", x, y);
    }
    void hanoi(int n, char a, char b, char c) {
    	if (n == 1) {
    		move(a, c);
    	} else {
    		hanoi(n - 1, a, c, b);
    		move(a, c);
    		hanoi(n - 1, b, a, c);
    	}
    }
    int main() {
    	int n;
    	scanf("%d", &n);
    	hanoi(n, 'A', 'B', 'C');
    	return 0;
    }
    
    

    Pascal :

    var 
      x,y,z:char;
      n,k:longint;
    
    procedure sub(n:longint; a,c,b:char);
    begin
      if(n=0) then exit;
      sub(n-1,a,b,c);
      inc(k);
      writeln(a,'->',c);
      sub(n-1,b,c,a);
    end;
    
    begin
      readln(n);
      k:=0; x:='A'; y:='B'; z:='C';
      sub(n,x,z,y);
    end.
    
    
    • 1

    信息

    ID
    1579
    时间
    1000ms
    内存
    32MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者