稍有常识的人都会看出,做完了前面那道题后,这道题还会做不出来么? #include<iostream> #include<memory.h> using namespace std; int a1[40]={0}; int a2[40]={0}; void multiply(int a[],int b[]) { int c[40]={0}; for(int i=0;i<40;i++) { int e=0; for(int j=0;j<40-i;j++) { int t=a[i]*b[j]+e+c[i+j]; e=t/10000; c[i+j]=t%10000; } } memcpy(a,c,40*sizeof(int)); } int main() { int N; cin>>N; a1[0]=1; a2[0]=2; while(N) { if(N&1) { multiply(a1,a2); } N>>=1; multiply(a2,a2); } int i=39; while(a1[i]==0) i--; printf("%d",a1[i--]); while(i>=0) printf("%04d",a1[i--]); printf("/n"); return 0; }