#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; } /************************************************************** Problem: 1223 User: admin Language: C Result: Accepted Time:8 ms Memory:1144 kb ****************************************************************/