python求和两个数字表示为两个数组

时间:2018-10-31 01:50:50

标签: python

这包括两个部分。第一部分是求和函数,然后是乘法函数。我是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

1 个答案:

答案 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

您尝试执行的操作有点奇怪,因此解决方案可能不是那么优雅