【问题标题】:Multiplying the list of numbers without multiply将数字列表相乘而不相乘
【发布时间】:2016-04-01 17:39:18
【问题描述】:

我正在尝试将列表中的元素相乘,以便它们给我它们的总数,但只使用加法和减法。例如,[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,这还不够。有什么建议吗?

【问题讨论】:

  • 嗯,我注意到的第一件事是您的 for j in range(...): 循环基本上是对每个数字进行平方,而不是乘以其他任何数字。

标签: list python-2.7 multiplication addition


【解决方案1】:

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

由于您想多次执行相同的操作,因此您自己编写 multiplication(num1, num2) 函数只需要加法并在乘法时使用它会是更好的选择。

如您所知,两个数字的乘法是将 firstNumber 添加到自身的 secondNumber 次。 S 你可以像下面这样编写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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-20
    • 2016-07-06
    • 1970-01-01
    • 1970-01-01
    • 2019-07-07
    • 1970-01-01
    相关资源
    最近更新 更多