【题目】
1170:计算2的N次方
时间限制: 1000 ms 内存限制: 65536 KB
提交数: 37769 通过数: 20345
【题目描述】
任意给定一个正整数N(N<=100),计算2的n次方的值。
【输入】
输入一个正整数N。
【输出】
输出2的N次方的值。
【输入样例】
5
【输出样例】
32
【代码】
#include<iostream>
#include<cmath>
using namespace std;
int a[1000]={2};
int len_a=1;
void bull(int n){
if(n==1){
return ;
}
for(int i=1;i<n;i++){//n-1个2
int temp=0;//上一次的进位
for(int j=0;j<len_a;j++){//a数组值的长度
a[j]=a[j]*2+temp;//加上上一次进位和本次的相乘结果
temp=a[j]/10;//保留进位
a[j]=a[j]%10;
}
if(temp!=0){//加上本次进位
a[len_a]+=temp;
}
if(a[len_a]!=0){
len_a++;
}
}
}
int main(){
int n;
cin>>n;
bull(n);
for(int i=len_a-1;i>=0;i--){//反向输出
cout<<a[i];
}
return 0;
}