编写程序接受两个任意大的整数,返回两个整数之积(提示:大整数用字符串表示)。 例如输入:999 999 输出:998001 输入:0 9999999999999999 输出:0
时间: 2023-06-06 17:04:37 浏览: 143
好的,这个问题可以回答。以下是我的代码:
```python
def multiply_strings(str1, str2):
if str1 == '0' or str2 == '0':
return '0'
n1, n2 = len(str1), len(str2)
result = [0] * (n1 + n2)
for i in range(n1-1, -1, -1):
carry = 0
for j in range(n2-1, -1, -1):
temp = int(str1[i]) * int(str2[j]) + carry + result[i+j+1]
result[i+j+1] = temp % 10
carry = temp // 10
result[i] += carry
return ''.join(map(str, result)).lstrip('0')
def main():
num1, num2 = input().split()
print(multiply_strings(num1, num2))
if __name__ == '__main__':
main()
```
程序的核心是一个将两个字符串表示的大整数相乘的函数`multiply_strings`,使用传统的竖式乘法实现。程序先判断输入的两个整数是否为0,如果其中有一个为0,则直接返回0。否则,程序将两个大整数倒序遍历,每次计算两个数字相乘的结果,并将计算结果加到正确的行列上。最后,程序会将结果转换成字符串表示,并移除最前面的连续0,最终返回结果。
对于输入999 999,程序将返回998001,对于输入0 9999999999999999,程序将返回0。
阅读全文