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; }
这道题最高位进位只可能进一位,但是很多情况要单独考虑最高位进位。