Hanoi塔问题(递归)

Posted 文流

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hanoi塔问题(递归)相关的知识,希望对你有一定的参考价值。

#include<iostream>
#include<cstdio>
using namespace std;
int sum;
int f(int n,char a,char b,char c){

    if(n == 1){printf("1 from a to b\n");sum++;return sum;}
    else {
        f(n-1,a,c,b);
        printf("%d from %c to %c\n",n,a,c);sum++;
        f(n-1,b,a,c);
    }
}
int main(){
    int cases,  n;
    cin>>cases;
    while(cases--){
        cin>>n;
        sum = 0;
        f(n,‘a‘,‘b‘,‘c‘);
        printf("sum = %d\n",sum);
    }
    return 0;
}

  

以上是关于Hanoi塔问题(递归)的主要内容,如果未能解决你的问题,请参考以下文章

汉诺塔(Tower of Hanoi) 递归代码实现 c语言(顺序栈实现)

Hanoi塔问题(递归)

汉诺塔递归函数hanoi

汉诺塔(Tower of Hanoi)问题的求解——利用栈与递归

汉诺塔(Hanoi)图解递归算法

用递归方法解决汉诺塔问题(Recursion Hanoi Tower Python)