UVA 10106
#include <stdio.h> #include <string.h> char a[300]={'\0'},b[300]={'\0'}; int mult[610]={0},na[300]={0},la,nb[300]={0},lb; int main() { int i,j; while(scanf("%s%s",a,b)==2) { la=strlen(a); lb=strlen(b); for(i=0;i<la;i++) na[i]=a[la-1-i]-'0'; for(j=0;j<lb;j++) nb[j]=b[lb-1-j]-'0'; memset(mult,0,sizeof(mult)); for(i=0;i<la;i++) for(j=0;j<lb;j++) { mult[i+j]+=na[i]*nb[j]; if(mult[i+j]>=0) { mult[i+j+1]+=mult[i+j]/10; mult[i+j]%=10; } } la+=lb; while(!mult[la-1]&&la-1) la--; for(i=la-1;i>=0;i--) printf("%d",mult[i]); printf("\n"); } return 0; }