12:計算2的N次方
- 總時間限制:
- 1000ms
- 內存限制:
- 65536kB
- 描述
-
任意給定一個正整數N(N<=100),計算2的n次方的值。
- 輸入
- 輸入一個正整數N。
- 輸出
- 輸出2的N次方的值。
- 樣例輸入
-
5
- 樣例輸出
-
32
- 提示
- 高精度計算
//noi_1811 /*#include<iostream>//用cmath裏的函數同樣過 #include<cmath> #include<iomanip> using namespace std; int main(){ int n; cin>>n; cout<<fixed<<setprecision(0)<<pow(2,n); return 0; }*/ #include<iostream>//高精度乘法 #include<cmath> #include<iomanip> using namespace std; int a[105]={0}; void multiplya2(int c[]){ for(int i=1;i<=c[0];i++){ c[i]=c[i]*2; } for(int i=1;i<=c[0];i++){ c[i+1]+=a[i]/10; c[i]=c[i]%10; } if(c[c[0]+1]) c[0]++; } void printa(int c[]){ for(int i=1;i<=c[0];i++){ cout<<c[c[0]+1-i]; } cout<<endl; } int main(){ int n; cin>>n; a[0]=1; a[1]=1; for(int i=1;i<=n;i++){ multiplya2(a); } printa(a); return 0; }
這道題最高位進位只可能進一位,但是很多情況要單獨考慮最高位進位。