汉诺塔系列1
Problem Description
n個盤子的漢諾塔問題的最少移動次數是2^n-1,即在移動過程中會產生2^n個系列。由于發生錯移產生的系列就增加了,這種錯誤是放錯了柱子,并不會把大盤放到小盤上,即各柱子從下往上的大小仍保持如下關系?:
 n=m+p+q
 a1>a2>...>am
 b1>b2>...>bp
 c1>c2>...>cq
 計算所有會產生的系列總數。
 
 
Input
包含多組數據,首先輸入T,表示有T組數據.每個數據一行,是盤子的數目N<30。
Output
對于每組數據,輸出移動過程中所有會產生的系列總數。
Example Input
31329Example Output
32768630377364883 #include <stdio.h> #include <stdlib.h> long long int f(int n) {if(n==1)return 3;elsereturn 3*f(n-1); } int main() {int t,n,i;scanf("%d",&t);for(i=1;i<=t;i++){scanf("%d",&n);printf("%lld\n",f(n));}return 0; }總結
                            
                        - 上一篇: js和jsp所有页面跳转总结
 - 下一篇: C++11并发实战(专栏)