#include <stdlib.h> #include <stdio.h> int a[10000]; int m; void bigpow(int num){ a[0]=1; m=1; int i=0,j=0,temp=0,flag=0; for(i=1,flag=0;i<=num;i++){ //m为当前计算结果的位数,倒序 for(j=0,temp=0;j<m;j++){ temp=a[j]*2+flag; a[j]=temp%10; flag=temp/10; } //flag进位 while(flag){ a[m++]=flag%10; flag/=10; } } } int main(){ int num=10000; bigpow(num); int j=0; printf("位数:%d/n",m); for(j=m-1;j>=0;j--){ printf("%d",a[j]); } printf("/n"); return 1; }