#T0085. 大整数乘法

0

大整数乘法

题目描述

给定两个非负大整数 A、B,求它们的乘积 A × B 的准确值。

由于这两个整数可能很大,普通的整型变量无法存下,需要用数组模拟竖式乘法来完成计算。

输入格式

输入共两行,每行一个非负整数:

  • 第一行:整数 A;
  • 第二行:整数 B。

输入数据不含前导零(数字 0 单独以一个 0 表示)。

输出格式

输出一行,为 A × B 的准确结果,同样不含前导零。

样例输入 #1

123
456

样例输出 #1

56088

样例输入 #2

12345678901234
5678901234567

样例输出 #2

70109891153785526659755678

数据范围与约定

  • A、B 的位数均满足 1 ≤ 位数 ≤ 2000;
  • A、B 均为非负整数,无前导零;
  • 乘积最长可达约 4000 位。

提示

  • 可以把大整数的每一位(或每几位)存入数组,模拟平时手算的竖式乘法:用一个数的每一块去乘另一个数的每一块,把结果累加到对应的位置上。
  • 乘的过程中可以先只管累加、暂不处理进位,等所有块两两乘完后,再从低位到高位统一进位。
  • 为了减少运算次数,可以让数组的一个元素存放多位十进制数字(例如每 4 位存在一个元素中,逢 10000 进一);输出时注意除最高块外,其余每块都要补足前导零。
  • 特别留意乘数为 0 的情况,结果应直接输出一个 0