7 solutions

  • 1
    @ 2025-5-12 17:55:32
    #include<bits/stdc++.h>
    using namespace std;
    void h(int x,char a,char b,char c) //表示x个盘子从a移动到b,借助的是c盘子 
    {
    	if(x==1)
    	{
    		cout<<a<<"->"<<x<<"->"<<b<<endl;
    	}
    	else
    	{
    		h(x-1,a,c,b);
    		cout<<a<<"->"<<x<<"->"<<b<<endl;
    		h(x-1,c,b,a);
    	}
    }
    int main()
    {
    	int n;
    	char a,b,c;
    	cin>>n>>a>>b>>c;
    	h(n,a,b,c);
    	return 0;
    }
    
    • 0
      @ 2025-5-17 11:46:07
      #include<bits/stdc++.h>
      using namespace std;
      void h(int x,char a,char b,char c)
      {
      	if(x==1)
      	{
      		cout<<a<<"->"<<x<<"->"<<b<<endl;
      	}
      	else
      	{
      		h(x-1,a,c,b);
      		cout<<a<<"->"<<x<<"->"<<b<<endl;
      		h(x-1,c,b,a);
      	}
      }
      int main()
      {
      	int n;
      	char a,b,c;
      	cin>>n>>a>>b>>c;
      	h(n,a,b,c);
      	return 0;
      }
      
      
      • 0
        @ 2025-1-12 13:57:58
        #include<bits/stdc++.h>
        using namespace std;
        void lkj(int n,char a,char b,char c)
        {
        	if(n==1)
        	{
        		cout<<a<<"->"<<n<<"->"<<b<<endl;
        	}
        	else
        	{
        		lkj(n-1,a,c,b);
        		cout<<a<<"->"<<n<<"->"<<b<<endl;
        		lkj(n-1,c,b,a);
        	}
        }
        int main()
        {
        	int n;
        	char a,b,c;
        	cin>>n>>a>>b>>c;
        	lkj(n,a,b,c);
        	return 0;
        }
        • -1
          @ 2025-4-20 9:24:32
          #include <bits/stdc++.h>
          using namespace std;
          
          // 汉诺塔递归函数
          // 参数说明:
          // n: 当前要移动的盘子数量
          // from: 起始柱
          // to: 目标柱
          // aux: 辅助柱
          void hanoi(int n, char from, char to, char aux) {
              if (n == 1) {
                  // 当只剩一个盘子时,直接移动到目标柱
                  cout << from << "->" << n << "->" << to << endl;
                  return;
              }
              
              // 1. 将上方 n-1 个盘子从起始柱移动到辅助柱(借助目标柱)
              hanoi(n - 1, from, aux, to);
              
              // 2. 将第 n 个盘子从起始柱移动到目标柱
              cout << from  << "->" << n << "->" << to << endl;
              
              // 3. 将 n-1 个盘子从辅助柱移动到目标柱(借助起始柱)
              hanoi(n - 1, aux, to, from);
          }
          
          int main() {
              int n;
              cin >> n;
              char a,b,c;
              cin >> a >> b >> c;
              // 调用汉诺塔函数,初始从A柱移动到C柱,B柱作为辅助
              hanoi(n, a, b, c);
              
              return 0;
          }
          
          • -1
            @ 2025-1-23 10:32:47
            #include<bits/stdc++.h>
            using namespace std;void hn(int n,char a,char b,char c){if(n==1){cout<<a<<"->"<<n<<"->"<<b<<endl;}else{hn(n-1,a,c,b);cout<<a<<"->"<<n<<"->"<<b<<endl;hn(n-1,c,b,a);}}int main(){int n;char a,b,c;cin>>n>>a>>b>>c;hn(n,a,b,c);return 0;}
            
            • -1
              @ 2024-10-16 19:01:26
              #include<bits/stdc++.h>
              using namespace std;
              void lkj(int n,char a,char b,char c)
              {
              	if(n==1)
              	{
              		cout<<a<<"->"<<n<<"->"<<b<<endl;
              	}
              	else
              	{
              		lkj(n-1,a,c,b);
              		cout<<a<<"->"<<n<<"->"<<b<<endl;
              		lkj(n-1,c,b,a);
              	}
               } 
              int main()
              {
              	int n;
              	char a,b,c;
              	cin>>n>>a>>b>>c;
              	lkj(n,a,b,c);
              	return 0;
              }
              
              • -5
                @ 2024-8-17 14:53:10
                #include<bits/stdc++.h>
                using namespace std;
                void h(int x,char a,char b,char c)
                {
                	if(x==1)
                	{
                		cout<<a<<"->"<<x<<"->"<<b<<endl;
                	}
                	else
                	{
                		h(x-1,a,c,b);
                		cout<<a<<"->"<<x<<"->"<<b<<endl;
                		h(x-1,c,b,a);
                	}
                }
                	int main()
                	{
                		int n;
                		char a,b,c;
                		cin>>n>>a>>b>>c;
                		h(n,a,b,c);
                		
                	}
                
              • 1

              Information

              ID
              940
              Time
              1000ms
              Memory
              256MiB
              Difficulty
              3
              Tags
              (None)
              # Submissions
              125
              Accepted
              38
              Uploaded By