汉诺塔算法//printf("%d:%c->%c\n",n,one,three);

本文介绍了一个经典的递归问题——汉诺塔,并通过C++代码实现了该问题的求解过程。用户可以输入盘子的数量,程序会输出移动这些盘子所需的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

// Hanoi.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"

//#include <stdio.h>  
int main()  
{  
  void hanoi(int n,char one,char two,char three);         // 对hanoi函数的声明   
  int m;  
  printf("input the number of diskes:");  
  scanf("%d",&m);  
  printf("The step to move %d diskes:\n",m);  
  hanoi(m,'A','B','C'); 
  return 0;
}  
  
void hanoi(int n,char one,char two,char three)          // 定义hanoi函数    
    // 将n个盘从one座借助two座,移到three座   
 {  
  //void move(char x,char y);       // 对move函数的声明   
  if(n==1)  
     //move(one,three); 
	 printf("%d:%c->%c\n",n,one,three);
  else  
    {  
     hanoi(n-1,one,three,two);  
     //move(one,three); 
	 printf("%d:%c->%c\n",n,one,three);
     hanoi(n-1,two,one,three);  
    }  
 } 

/*
input the number of diskes:3
The step to move 3 diskes:
1:A->C
2:A->B
1:C->B
3:A->C
1:B->A
2:B->C
1:A->C
Press any key to continue
*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值