这一题谁会。
2024-09-05 21:58:26
发布于:广东
有三根柱
A,B,C 在柱
A 上有
n 块盘片,所有盘片都是大的在下面,小片能放在大片上面。现要将
A 上的
n 块片移到
C 柱上,每次只能移动一片,而且在同一根柱子上必须保持上面的盘片比下面的盘片小,请输出移动的步骤。
输入格式
输入整数
n,1≤n≤17,表示有
n 块盘片
输出格式
输出移动的步骤
输入数据 1
3
输出数据 1
1 A->C
2 A->B
3 C->B
4 A->C
5 B->A
6 B->C
7 A->C
全部评论 2
汉诺塔问题,网上题解很多,直接去搜就好了。
2024-09-06 来自 加拿大
0#include<bits/stdc++.h> using namespace std; #define int long long int ans=0;int n; void f(int n,char a,char b,char c,int &ans){ if(n==1){ cout<<ans++<<" "<<a<<"->"<<b<<endl; } else{ f(n-1,a,c,b,ans); cout<<ans++<<" "<<a<<"->"<<b<<endl; f(n-1,c,b,a,ans); } return ; } signed main(){ cin>>n; f(n,'A','C','B',ans); return 0; }
2024-09-05 来自 广东
0一眼汉诺塔问题
2024-09-05 来自 广东
0给个赞呗
2024-09-05 来自 广东
1
有帮助,赞一个