汉诺塔是一种生活中的游戏,从现实生活的角度考虑,逐层的递归,假定是最优,
从而形象的得出递归方程f(n)=3*f(n-1)+2,f(1)=2;
先将n-1个通过B柱放到C柱,再将第N个放到B柱,然后再将n-1个通过B柱放到A柱
再将第N个放到C柱,最后将n-1个放到C柱,n-1个总共3次,第N个总过2次
再将递归式进行递推得到公式pow(3,n)-1
#include <math.h> #include <stdio.h> int main(void) { int n; while (scanf("%d", &n) != EOF) printf("%.0f\n", pow(3, n) - 1); return 0; }