2^n实质上是2 * 2 ^(n-1) 得到4 * 2 ^(n-2) 在得到 8*2 ^(n-3) 每次左边的数是上一次左边的数相加 这过程可以用加法模拟
重要的是处理 每次相加后是否进高位
但是我的代码处理进位可能有误 希望看到的大神能指出
最后说一句 菜勿喷
#include <stdio.h>
int k=1;
int a[1000]={0};
void print()
{
for(int j=k-1;j>=0;j--)printf("%d",a[j]);
printf("\n");
}
int main()
{
a[0]=2;
int n=1000;//调整n的值得到2^n的值
for(int i=1;i<n;i++)
{
int temp=a[k];
for(int j=0;j<k;j++)
{
a[j]*=2;
}
for(int j=0;j<k;j++)
{
a[j+1]+=a[j]/10;
a[j]%=10;
}//这两个循环都是模拟加法的过程
if(temp==0&&a[k]!=0)k++;//说明加一个位数 如从百位到十位 十位到百位
}
print();
return 0;
}