思路:每位都要乘2 从1开始乘 用数组来存放每一位
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
int a[55],carry=0;
memset(a,0,sizeof(a));
a[54]=1;
while(n--)
{
int i=54; //每次都从最右边开始 每位都要乘2
while(i>=0)
{
int t=a[i]*2+carry;//计算当前位的十进制
a[i]=t%10; //取余 保证不超过10
carry=t/10; //如果有大于10的在下一位准备进1
i--;
}
}
bool flag=false;
for(int i=0;i<55;i++)
{
if(a[i]||flag==true)
{
cout<<a[i];
flag=true;
}
}
}