大整数相乘
1 #include<iostream> 2 #include<map> 3 #include<vector> 4 #include<stack> 5 using namespace std; 6 int main(){ 7 char a[101],b[101]; 8 int ans[220],len_ans; 9 cin>>a>>b; 10 11 int la=strlen(a); 12 int lb=strlen(b); 13 14 int *na=(int *)malloc(la*sizeof(int)); 15 int *nb=(int *)malloc(lb*sizeof(int)); 16 17 for(int i=la-1;i>=0;i--){ 18 na[i]=a[la-i-1]-'0'; 19 } 20 for(int i=lb-1;i>=0;i--){ 21 nb[i]=b[lb-i-1]-'0'; 22 } 23 24 memset(ans,0,sizeof(ans)); 25 for(int i=0;i<la;i++){ 26 for(int j=0;j<lb;j++){ 27 ans[i+j]+=na[i]*nb[j]; 28 } 29 } 30 int add=0; 31 len_ans=la+lb; 32 for(int i=0;i<la+lb-1;i++){ 33 if(ans[i]>=10){ 34 ans[i+1]+=ans[i]/10; 35 ans[i]=ans[i]%10; 36 } 37 } 38 while(ans[len_ans-1]==0) len_ans--; 39 for(int i=len_ans-1;i>=0;i--){ 40 cout<<ans[i]; 41 }cout<<endl; 42 }