Hanoi雙塔問題(遞推)
阿新 • • 發佈:2019-01-23
對於50%的資料, 1<=n<=25
對於100% 資料, 1<=n<=200
設法建立An與An-1的遞推關係式。
題解
通過手推的方式可以發現轉移方程f[i]=2*f[i-1]+2,由於n<=200,所以要用高精
#include <iostream> #include <cstdio> using namespace std; int n,c,a[22],i,j; int main() { cin>>n; a[1]=2;for(i=2;i<=n;i++) { c=0; for(j=1;j<=20;j++) { a[j]=a[j]*2+c; if(j==1) a[j]+=2; c=a[j]/10000; a[j]%=10000; } } i=20; while(i>1&&!a[i]) i--; cout<<a[i]; while(--i) printf("%04d",a[i]); cout<<endl; return 0; }