10106 - Product

#include <string.h>
#include <stdio.h>
#include <math.h>

void tempAdd(int temp[],int product[])
{
 int i,j,c=0;
 for(i=0;i<100000;i++)
 {
  product[i]=product[i]+temp[i]+c;
  c=0;
  if(product[i]>9)
  {
   product[i]=product[i]% 10;
   c=1;
  }
 }
}

int p1[300],p2[300],temp[100000],product[100000];
int main()
{
 int n=0,c=0,i,j,len1,len2;
 char str1[300],str2[300];
 while(1)
 {
  memset(p1,0,sizeof(p1));
  memset(p2,0,sizeof(p2));
  memset(temp,0,sizeof(temp));
  memset(product,0,sizeof(product));
  if(scanf("%s",str1)==EOF)break;
  scanf("%s",str2);
  len1=strlen(str1);
  len2=strlen(str2);
  for(i=0;i<len1;i++)
   p1[len1-i-1]=(str1[i]-'0');
  for(i=0;i<len2;i++)
   p2[len2-i-1]=(str2[i]-'0');
  for(j=0;j<len2;j++)
  {
   for(i=0;i<=len1;i++)
   {
    temp[i+j]=p2[j]*p1[i]+c;
    c=0;
    if(temp[i+j]>9)
    {
     c=temp[i+j]/10;
     temp[i+j]=temp[i+j]% 10;
    }
   }
   tempAdd(temp,product);
   memset(temp,0,sizeof(temp));
  }
  for(i=100000-1;i>=0;i--)
   if(product[i]!=0)
   {
    j=i;break;
   }
   if(i==-1)j=0;
   for(i=j;i>=0;i--)
    printf("%d",product[i]);
   printf("\n");
 }
 return 0;
}

 
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=97&page=show_problem&problem=1047

發佈了56 篇原創文章 · 獲贊 0 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章