这包括两个部分。第一部分是求和函数,然后是乘法函数。我是python的新手,所以在这方面苦苦挣扎。
对于加法功能,我正在尝试执行123 + 52或430 + 25或任何数量的数字。数字以数组表示,您不能将它们转换为数字。它们会自动反转,因此单位是第一个元素,高位在其后。
array1 = [3,2,1] (123)
array2 = [2,5] (52)
与乘法相同。 123 * 52或430 * 51。
所以它实际上是在写加法或乘法,就像我们手动进行的一样,一个接一个数字。
那么基本上我该如何写一个加法函数和一个单独的乘法函数呢?我有一个较早的功能,基本上可以增加这样表示的数字。理想情况下,我想在此函数上进行修改/构建:
def incrementNum (array)
for index, digit in list(enumerate(array)):
if digit == 9:
array[index] = 0
else:
array[index] += 1
return array
arrayInt.insert(0, 1)
return array
答案 0 :(得分:0)
不确定我是否完全理解这个问题,但这是我会做的:
from functools import reduce
arr1 = [3,2,1]
arr2 = [2,5]
def sum_func(*args):
return sum(int(''.join(map(str, reversed(arr)))) for arr in args)
def mult_func(*args):
return reduce(lambda x, y: x*y, [int(''.join(map(str, reversed(arr)))) for arr in args])
print(123 + 52)
print(sum_func(arr1, arr2))
>>>175
>>>175
print(123 * 52)
print(mult_func(arr1, arr2))
>>6396
>>6396
您尝试执行的操作有点奇怪,因此解决方案可能不是那么优雅