zoukankan      html  css  js  c++  java
  • 汉诺塔 Tower of Hanoi

            假设柱子标为A,B。C。要由A搬至C,在仅仅有一个盘子时,就将它直接搬至C;当有两个盘子,就将B作为辅助柱。假设盘数超过2个。将第二个下面的盘子遮起来,就非常easy了。每次处理两个盘子,也就是:A->B、A->C、B->C这三个步骤,而被遮起来的部分,事实上就由方程的递归处理。

    代码例如以下:


    #include <stdio.h>
    
    void hanoi(int n,char A,char B,char C){
    	if(n == 1){
    		printf("Move sheet %d from %c to %c
    ",n,A,C);
    	}
    	else{
    		hanoi(n-1,A,C,B);
    		printf("Move sheet %d from %c to %c
    ",n,A,C);
    		hanoi(n-1,B,A,C);
    	}
    } 
    
    int main(){
    	int n;
    	printf("请输入盘数:");
    	scanf("%d",&n);
    	hanoi(n,'A','B','C');
    	return 0;
    }

    执行结果:

  • 相关阅读:
    代码1
    js中级第13天
    dom 浏览器模型
    js中级第12天
    js中级第11天
    js中级第十天
    js中级第九天
    js中级第8天
    js中级第六天
    js中级第七天
  • 原文地址:https://www.cnblogs.com/yjbjingcha/p/6901054.html
Copyright © 2011-2022 走看看