加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

UVA 10106 Product(大数乘法)

发布时间:2020-12-14 04:04:05 所属栏目:大数据 来源:网络整理
导读:The Problem ? The problem is to multiply two integers X,Y. (0=X,Y10250) ? The Input ? The input will consist of a set of pairs of lines. Each line in pair contains one multiplyer. ? The Output ? For each input pair of lines the output line

The Problem

?
The problem is to multiply two integers X,Y. (0<=X,Y<10250)
?

The Input

?
The input will consist of a set of pairs of lines. Each line in pair contains one multiplyer.
?

The Output

?
For each input pair of lines the output line should consist one integer the product.
?

Sample Input

?
?
?12
12
2
222222222222222222222222
?
?
?

Sample Output

?
?
?144
444444444444444444444444


代码:
#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>

using namespace std;

void bigmul(char *a,char *b,char *c)
{
    int la,lb,lc,i,j,aa[1000],bb[1000],cc[3000],t,n;
    la=strlen(a)-1;
    lb=strlen(b)-1;
    for(i=la,j=0;i>=0;i--)  aa[j++]=a[i]-'0';
    for(i=lb,j=0;i>=0;i--)  bb[j++]=b[i]-'0';
    memset(cc,sizeof(cc));
    for(i=0;i<=la;i++)
        for(j=0;j<=lb;j++)
           cc[i+j]+=aa[i]*bb[j];
    for(i=0;i<=la+lb+5;i++)
    {  t=cc[i]/10;
        cc[i+1]+=t;
        cc[i]=cc[i]-t*10;}
    for(i=la+lb+5;i>=0;i--)
          if(cc[i]!=0)
            break;

  if(i==-1)
    strcpy(c,"0");
else
 {  n=i;
  for(i=0,j=n;i<j;i++,j--)
  {
       t=cc[i];cc[i]=cc[j];cc[j]=t;
  }

   for(i=0;i<=n;i++)
     c[i]=cc[i]+'0';
  c[i]='';
  }
 }

int main()
{
    char b[1000],a[1000],c[2000];
    while(~scanf("%s%s",a,b))
    {
        bigmul(a,b,c);
        printf("%sn",c);
    }
    return 0;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读