#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
string add(string a,string b)
{
string ans;
vector<int>A,B;
for(int i = a.size() - 1;i >= 0;i --)A.push_back(a[i] - '0');
for(int i = b.size() - 1;i >= 0;i --)B.push_back(b[i] - '0');
int t = 0;
for(int i = 0;i < A.size() || i < B.size();i ++)
{
int sum = 0;
if(i < A.size())sum += A[i];
if(i < B.size())sum += B[i];
sum += t;
if(sum >= 10)t = 1;
else t = 0;
ans.push_back(sum % 10 + '0');
}
if(t)ans.push_back('1');
reverse(ans.begin(),ans.end());
return ans;
}
string mul(string a,string b)
{
if(a < b)swap(a,b);
string ans = "0";
vector<int> B;
for(int i = b.size() - 1;i >= 0;i --)B.push_back(b[i] - '0');
for(int i = 0;i < B.size();i ++)
{
for(int j = 0;j < B[i];j ++)
{
ans = add(ans,a);
}
a.push_back('0');
}
return ans;
}
int main()
{
int n;
while(cin >> n)
{
string ans = "1";
while(n--)ans = mul(ans,"2");
cout << ans << endl;
}
return 0;
}
9102 计算2的N次方
于 2023-06-13 14:17:57 首次发布