大数乘法
#include <iostream> #include <stdio.h> #include <string.h> #include <stdlib.h> using namespace std; int main() { char str1[300],str2[300]; int d[300],f[300],c[600]; int l1,l2,l,w,e; while(scanf("%s",str1)!=EOF) { memset(c,0,sizeof(c)); memset(d,0,sizeof(d)); memset(f,0,sizeof(f)); scanf("%s",str2); l1=strlen(str1); l2=strlen(str2); if(l1<=l2) l=l2; else l=l1; w=l1; e=l2; for(int i=0;i<l;i++) { if(l1-1>=0) { d[i]=str1[l1-1]-'0'; l1--; } else d[i]=0; if(l2-1>=0) { f[i]=str2[l2-1]-'0'; l2--; } else f[i]=0; } for(int i=0;i<w;i++) { for(int j=0;j<e;j++) { c[i+j]=c[i+j]+d[i]*f[j]; } } for(int i=0;i<400;i++)//i=w+e; { if(c[i]>=10) { c[i+1]+=c[i]/10; c[i]=c[i]%10; } } int flag=0; for(int i=400;i>=0;i--)//i=w+e; { if(flag||c[i]) { flag=1; printf("%d",c[i]); } } if(flag==0) printf("0"); printf("\n"); } return 0; }