1511: 火星人乘法
内存限制:128 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:1
解决:1
题目描述
21世纪.人类宇航员第一次在火星表面登陆,发现了一些奇妙的图案,经科学家们的研究,猜想其中的某一部分可能为火星人计算两个数相乘的记录,且它们用的是18进制。
在这些图案和符号中,他们用类似ASCII来表示数字,具体如下:
I代表 “1”
N代表 “10”
M代表 “100”
H代表 “1000”
R代表 “10000”
P代表 “100000”
K代表 “1000000”
T代表 “10000000”
上面用“”包含的数字是18进制的数字,如N十M代表“110”(为方便起见,将字符间的加号省略,写为NM),相当于我们所用的十进制数342(342=18x18+18)。而我们的十进制数401,火星人写为:
(401)10=1x(18)10x(18)10+4x(18)10+5x(1)10=(145)18=1x(100)18+4x(10)18+5x(1)18=IIIIINNNNM
(先写低位后写高位)
现在使数字a与数字b相乘,火星人的方法是:先用I与b相乘,I在第一行的左边,右边为I与b的积,再用II与b相乘,第二行输出II及II与b的积,每次加倍,依次用IIII、 IIIIIIII等去乘b,直到当各行左边一列的数的和大于等于a为止。
例如:
a=IIIIIIIIINN
b=IIIIINNNNNN
过程如下:
I* IIIIINNNNNN
II IIIIIIIIIINNNNNNNNNNNN
IIII* IINNNNNNNH
IIIIIIII* IIIINNNNNNNNNNNNNNMM
IIIIIIII* IIIIIIIINNNNNNNNNNMMMM
IIIIIIIIIIIIIIII IIIIIIIINNNNNNNNNNMM
IIIIIIIIIIIIIIN* IIIIIIIIIIIIIIIINNMMMMMMMMMMM
在左边的一列中取出I、IIII、IIIIIIII、IIIIIIIIIIIIIIN(这四个数之和为a,取出的数紧接输出一个“*”,这四行对应的右边的四项之和即为a X b,结果为:
IIIIIIIIINNNNNNNNNNNNMMMMMMMMMMMMMMM
编程完成上述乘法。
输入
输入文件仅含两行,第一行为“a”,第二行为“b”。(a和 b为我们地球上使用的小于等于32767的正整数)
输出
输出由若干行组成。每行的左列从上到下依次为:I、II、IIII…,取出的数紧接着输出一个“*”,右列从上到下依次为:I、II、IIII等与b的乘积,左列与右列之间用一个空格隔开。最后的一行输出“The solution is: ”和最后的积aXb。
样例输入 复制
IIIIIIIIINN
IIIIINNNNNN
样例输出 复制
I* IIIIINNNNNN
II IIIIIIIIIINNNNNNNNNNNN
IIII* IINNNNNNNM
IIIIIIII* IIIINNNNNNNNNNNNNNMM
IIIIIIIIIIIIIIII IIIIIIIINNNNNNNNNNMMMMM
IIIIIIIIIIIIIIN* IIIIIIIIIIIIIIIINNMMMMMMMMMMM
The solution is:IIIIIIIIINNNNNNNNNNNNMMMMMMMMMMMMMMM