1 solutions
-
0
#include<bits/stdc++.h> using namespace std; const int N=210; int a[N],c[N],d[N]; void mul() { int t=0; for(int i=0;i<N;i++) { t=t+a[i]*2; c[i]=t%10; t/=10; } for(int i=0;i<N;i++) { c[i+1]=c[i+1]+c[i]/10; c[i]%=10; } memcpy(a,c,sizeof c); } void add() { int t=2; //进位 for(int i=0;i<N;i++) { t=c[i]+t; d[i]=t%10; t/=10; } } int main() { int n; scanf("%d",&n); a[0]=0; for(int i=1;i<=n;i++) //一共n个盘子 { mul(); //高精度乘法 add(); //高精度加法 memcpy(a,d,sizeof d); } int lend=N-1; while(lend>0&&d[lend]==0) lend--; for(int i=lend;i>=0;i--) { printf("%d",d[i]); } return 0; }
- 1
Information
- ID
- 960
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 5
- Tags
- (None)
- # Submissions
- 32
- Accepted
- 6
- Uploaded By