描述
任意给定一个正整数N(N≤100),计算2的n次方的值。
格式
输入格式
输入一个正整数N。
输出格式
输出2的N次方的值。
样例
输入样例
5
输出样例
32
限制
时间限制: 1000 ms
内存限制: 65536 KB
要注意这个是大数,就需要模拟运算,但是很简单
#include<stdio.h>
#include<iostream>
#include<string.h>
#include<algorithm>
using namespace std;
int main()
{
int n,high=1;
cin>>n;
//这里防止数据太大就需要模拟计算
int arr[200];
memset(arr,0,sizeof(arr));
arr[0]=1;
for(int i=0; i<n; i++)
{
for(int j=0; j<high; j++)
{
arr[j]*=2;//进行乘法
}
//进行进位
int jinwei=0;
for(int j=0; j<high; j++)
{
arr[j]+=jinwei;
jinwei=arr[j]/10;
arr[j]%=10;
}
if(jinwei!=0)
{
arr[high]=jinwei;
high++;
}
}
//这里就需要倒过来输出并要去除0
int flag=1;
for(int i=high; i>=0; i--)
{
if(arr[i]==0&&flag==1)continue;
else if(arr[i]!=0||flag==0)
{
flag=0;
cout<<arr[i];
}
}
cout<<endl;
return 0;
}