#JCPC2023B. 夜里去补作业了

夜里去补作业了

Time limit: 1 second

Memory limit: 256 megabytes

题目描述

Yui 是一个很有仪式感的小学二年级学生,临近期末的她,不出所料地在 今天 收到了老师 Kirito 布置的算数作业。

可是,作为一个很有仪式感的人,她一定会不做任何事,而是准备在 今天 专心过节!

那么,作业就交给你了!

现在摆在你面前的,是一道名为 "列竖式,计算两个数的乘积" 的解答题。你需要对于给定的两个数 a,ba, b,输出用竖式计算 a×ba \times b 的过程。

格式要求参见样例解释。

输入

第一行包含一个整数,为 被乘数 aa

第二行包含一个整数,为 乘数 bb

输出

输出 a×ba \times b 的竖式计算过程。

限制

0a,b101000 \le a, b \le 10 ^ {100}

保证给定数字不包含前导 00

3
12
  3
*12
---
  6
 3 
---
 36
12345
902
   12345
*    902
--------
   24690
  00000
111105
--------
11135190

样例解释

你需要按照下面的格式输出竖式计算的过程:

  1. 你需要右对齐输出;
  2. 被乘数 写在上面,乘数 写在下面;
  3. 乘数 的最低位开始,将 被乘数 与该位数字相乘,结果写在下一行,与该位数字右对齐。如果 乘数 有多位,那么对每一位都重复这个过程,每次向左移动一位。注意需要处理 进位 问题;
  4. 如果 乘数 的某一位是 00,那么在对应的行写下与 被乘数 位数相同00(如样例 22);
  5. 将计算过程的所有行相加,结果写在最后一行;
  6. 用星号 * 代表 乘号,且满足 乘号乘数 位于同一行,以及 乘号 位于整个竖式的 最左端(如样例 11 中,且 乘号 恰好位于 乘数 的左端;样例 22 中,乘号 位于结果最高位的正上方);
  7. 用减号 - 代表 横线,分割 乘数、计算过程和结果。横线 的长度和整个竖式的 宽度相等

请注意数据范围。