#include <iostream>
#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std; char a[],b[],temp[];
int A[],B[],c[];
int na,nb;
int tag;
int cut,g; int main()
{
while(cin>>a>>b)
{
cut=; na=strlen(a);
nb=strlen(b);
for(int i=;i<na;i++){
A[i]=a[i]-'';
}
for(int i=;i<nb;i++){
B[i]=b[i]-'';
}
for(int i=na-;i>=;i--)
{
cut=na-i-;
for(int j=nb-;j>=;j--)
{
c[cut]=c[cut]+A[i]*B[j];
cut++;
}
}
tag=;
for(int i=;i<cut;i++)
{
if(c[i]>=)
{
if(c[cut-]>=)
{
cut++;
}
c[i+]+=c[i]/;
c[i]=c[i]%;
}
}
for(cut=;cut>;cut--){
if(c[cut]!=)
break;
}
for(;cut>=;cut--)
{
cout<<c[cut];
}
cout<<endl;
memset(A,,sizeof(a));
memset(B,,sizeof(b));
memset(c,,sizeof(c));
}
return ;
}

纸上得来终觉浅,绝知此事要躬行。

问题 J: 【高精度】高精度乘法

问题 J: 【高精度】高精度乘法

时间限制: 1 Sec  内存限制: 64 MB 提交: 32  解决: 16 [提交][状态][讨论版]

题目描述

牢门上的第三道锁,需要使用高精度乘法来破译出相应密码,当然,必须使用“万进制算法”计算两个非负整数A、B的积,其中A和B的位数在10000位以内。

输入

共两行数据,第一行为一个非负整数A,第二行为一个非负整数B,A、B的位数均在10000以内。

输出

输出一个数,即A和B的乘积。

样例输入

2
3

样例输出

6
05-27 20:20