1 solutions
-
2
#include<bits/stdc++.h> using namespace std; const int N=110; int a[N],c[N]; int main() { int n; cin>>n; a[0]=1; c[0]=1; for(int i=1;i<=n;i++) { int t=0; //进位 for(int j=0;j<N;j++) //从低位到高位依次相加 c=a+a; { c[j]=t+a[j]+a[j]; t=c[j]/10; //处理进位 c[j]%=10; //保留余数 } memcpy(a,c,sizeof c); //a=c; } int lenc=N-1; while(lenc>0&&c[lenc]==0) lenc--; //去除多余的前导0 for(int i=lenc;i>=0;i--) { cout<<c[i]; } return 0; }
- 1
Information
- ID
- 958
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 3
- Tags
- (None)
- # Submissions
- 38
- Accepted
- 13
- Uploaded By