1 条题解

  • 0
    @ 2023-6-11 12:16:28

    C :

    #include<stdio.h>
    int i = 1;//定义全局变量,每次调用后加1
    int sum=0;
    int  Hanoi(int n, char A, char B, char C)
    {
         
        if (n == 1)//如果只有一个直接从A移到B   "%2d-(%2d):%c==>%c\n"
        {
      sum++;
        }
        else
        {
       Hanoi(n - 1, A, C, B);//把n - 1个从A移到C借助B
         
        sum++;
        Hanoi(n - 1, B, A, C);//把n - 1个从C移到B借助B
            
        }
       return sum;  
    }
    int main()
    {
        int n;
        char A = 'A'; //定义ABC表示三个柱子
        char B = 'B';
        char C = 'C';
        scanf("%d", &n);
        printf("%d",Hanoi(n, A, B, C));
         
        return 0;
    }
    

    C++ :

    #include <iostream>
    using namespace std;
    
    int main(){
    	int s = 1;
    	int n,i;
    	cin>>n;
    	for(i = 1;i < n;i++){
    		s = 2 * s + 1;
    	}
    	
    	cout<<s<<endl;
    }
    

    Python :

    def hanoi(n):
        if n<1:
            return -1
        elif n==1:
            return 1
        else:
            return 2*(hanoi(n-1))+1
    num=int(input())
    print(hanoi(num))
    
    
    • 1

    信息

    ID
    2155
    时间
    1000ms
    内存
    128MiB
    难度
    10
    标签
    递交数
    2
    已通过
    1
    上传者