2009-08-14 08:05:40來源不明

ACM 10106 Q10106: Product

作法 : BIGNUMBER (大數乘法)

小心答案為0的輸出...

/**************************************/

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
main()
{
  char x[251],y[251];
  while(scanf("%s %s",x,y)==2)
      {
         int X=strlen(x),Y=strlen(y);
         int a,b,c,d,s[600]={0};
         for(a=X-1,c=0;a>=0;a--,c++)
            for(b=Y-1,d=0;b>=0;b--,d++)
               {
                s[c+d]=s[c+d]+(x[a]-48)*(y[b]-48);
                s[c+d+1]=s[c+d+1]+s[c+d]/10;
                s[c+d]%=10;
               }
         for(a=X+Y;a>=0;a--)
            if(s[a]!=0)
               {
                  for(;a>=0;a--)
                     printf("%c",s[a]+48);
                  break;
               }
            else if(a==0) printf("0");
            printf("\n");
      }
    return 0;
}