将数字列表相乘而不乘以

时间:2016-04-01 17:39:18

标签: list python-2.7 multiplication addition

我正在尝试将列表中的元素相乘,以便它们给出我的总数,但只使用加法和减法。例如,[1,3,6,8]的列表将具有输出144.到目前为止我的代码是:

numbers = [1,3,6,8]
def no_sign(numbers):
    total = 0
    answer = 0
    for i in range(len(numbers)):

        first_number = numbers[i]
        print str(first_number) + ' pop'
        for j in range(first_number):
            #print first_number
            answer = first_number + answer
            print str(first_number) + ' firstnum'
            print str(answer)+ " answeer "

        total = total + answer
        print str(total) + " total"

    return total

打印no_sign(数字)

这只给我110,这还不够。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

您的代码采用每个元素的平方并将它们相加。因此,您将获得1 + 9 + 36 + 64 = 110

由于你想多次做同样的事情,自己编写multiplication(num1, num2)函数只需添加并在乘法时使用它是更好的选择。

如你所知,两个数字的乘法是将firstNumber添加到第二个数字。您可以像下面这样编写multiplication函数并在列表中使用它。

def multiplication(num1, num2): 
    answer = 0
    for i in range(num2):
        answer += num1       
    return answer

numbers = [1,3,6,8]
def no_sign(numbers):
    total = 1 
    for number in numbers:
        total = multiplication(total, number)    
    return total

print no_sign(numbers)