hanoi双塔问题(高精乘)

#include
#include
#include
#include
using namespace std;
const int maxn=210;
int f[maxn][maxn],n,siz[maxn];
int main(){
 scanf("%d",&n);
 f[1][1]=2; siz[1]=1;
 for(int i=2;i<=n;i++){
  for(int j=1;j<=siz[i-1];j++){
   f[i-1][j]*=2;
  }
  for(int j=1;j<=siz[i-1];j++){
   f[i-1][j+1]+=f[i-1][j]/10;
   f[i-1][j]%=10;
  }
  while(f[i-1][siz[i-1]+1]>0){
   f[i-1][siz[i-1]+2]+=f[i-1][siz[i-1]+1]/10;
   f[i-1][siz[i-1]+1]%=10;
   ++siz[i-1];
  }
  for(int j=1;j<=siz[i-1];j++){
   f[i][j]=f[i-1][j];
  }
  siz[i]=siz[i-1];
  f[i][1]+=2;
  for(int j=1;j<=siz[i];j++){
   f[i][j+1]+=f[i][j]/10;
   f[i][j]%=10;
  }
  while(f[i][siz[i]+1]>0){
   f[i][siz[i]+2]+=f[i][siz[i]+1]/10;
   f[i][siz[i]+1]%=10;
   ++siz[i];
  }
 }
 for(int i=siz[n];i>=1;i--){
  cout<  }
 cout<  return 0;
}

你可能感兴趣的:(高精度)