1 条题解
-
0
C :
#include<stdio.h> int i = 1;//定义全局变量,每次调用后加1 void Hanoi(int n, char A, char B, char C) { if (n == 1)//如果只有一个直接从A移到B "%2d-(%2d):%c==>%c\n" { printf("%c To %c\n",A,C); } else { Hanoi(n - 1, A, C, B);//把n - 1个从A移到C借助B printf("%c To %c\n",A, C); Hanoi(n - 1, B, A, C);//把n - 1个从C移到B借助B } } int main() { int n; char A = 'A'; //定义ABC表示三个柱子 char B = 'B'; char C = 'C'; scanf("%d", &n); Hanoi(n, A, B, C); return 0; }
C++ :
#include <iostream> using namespace std; //n代表盘子的数量,a代表放盘子的塔,b代表中间的辅助塔,c代表目标塔 void hanNuo(int n,char a,char b,char c){ if(n > 0){ //把上面的n-1个盘子,从a塔借助于c塔放到b塔上 hanNuo(n - 1,a,c,b); //把最下面的第n个盘子,从a移动到c cout<<a<<" To "<<c<<endl; //将b塔上的n-1个盘子,从b移动到c借助于a hanNuo(n - 1,b,a,c); } } int main(){ int n; cin>>n; hanNuo(n,'A','B','C'); }
Python :
def hanoi(n,A,B,C): if n==1: print(A,"To",C) else: hanoi(n-1,A,C,B) print(A,"To",C) hanoi(n-1,B,A,C) x=int(input()) hanoi(x,"A","B","C")
- 1
信息
- ID
- 2154
- 时间
- 1000ms
- 内存
- 16MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者