在经历了一次又一次的电脑崩溃后,Alonso 对所有这些劣质的软件和糟糕的代码感到厌倦!他决定,为了改善这种情况,现代编程这栋“玻璃屋”需要被彻底拆除,并仅使用完全形式化的公理推理从零开始重建。作为第一步,他决定使用皮亚诺公理(Peano axioms)来实现自然数的算术运算。
皮亚诺公理(以意大利数学家朱塞佩·皮亚诺命名)是对自然数算术性质的公理化形式。我们有两个符号:常数 $0$ 和一元后继函数 $S$。自然数从 $0$ 开始,依次为 $0, S(0), S(S(0)), S(S(S(0)))$,以此类推。利用这两个符号,加法和乘法的运算通过以下公理归纳定义:对于任意自然数 $x$ 和 $y$,我们有:
$$x + 0 = x$$ $$x + S(y) = S(x + y)$$ $$x \cdot 0 = 0$$ $$x \cdot S(y) = x \cdot y + x$$
左侧的两个公理定义了加法,右侧的两个公理定义了乘法。
例如,给定 $x = S(S(0))$ 和 $y = S(0)$,我们可以重复应用这些公理进行推导:
$$x \cdot y = S(S(0)) \cdot S(0) = S(S(0)) \cdot 0 + S(S(0))$$ $$= 0 + S(S(0)) = S(0 + S(0)) = S(S(0 + 0)) = S(S(0))$$
编写一个程序,给定两个用皮亚诺算术定义的自然数 $x$ 和 $y$,计算它们的乘积 $x \cdot y$。
输入格式
输入包含两行。每一行包含一个用皮亚诺算术定义的自然数,长度不超过 $1\,000$ 个字符。
输出格式
输出两个输入数字的乘积。
样例
样例输入 1
S(S(0)) S(S(S(0)))
样例输出 1
S(S(S(S(S(S(0))))))
样例输入 2
S(S(S(S(S(0))))) 0
样例输出 2
0
Giuseppe Peano