簡體   English   中英

為什么輸出總是一樣的?

[英]Why is the output always the same?

我的任務是檢查一個數字(最多八位)的各個數字的立方是否等於輸入的數字(必須保留為字符串)。 例如,215 將返回 2 x 2 x 2 + 1 x 1 x 1 + 5 x 5 x 5 = 134(不正確)。

  • 371 = 3 x 3 x 3 + 7 x 7 x 7 + 1 x 1 x 1 = 371(真)

該程序將永遠繼續,直到輸入 0。 我明白我必須在主程序之前做一個函數。 但是即使我輸入 0 我的程序也不會中斷......

def sum_of_cubes(num):
    num_string = str(num)
    sum = 0
    for i in  num_string:
        digit = int(i)
        cube = digit * digit * digit
        sum = sum + cube
        return sum

def main():
     while True:
        number = input("Enter a number (max 8 digits): ")
        result = sum_of_cubes(number)
        print(result)
        number_result= str(result)

    if result == number:
        print("Yes")

    if result!= number:
        print("No")

    if number=='0':
        break

主要的()

您應該將立方數添加到 for 循環內的總和中。 您目前將它放在外面,因此它只會添加最后一位數字的立方數。 試試這個:

. . .

sum = 0
for i in  num_string:
        digit = int(i)
        cube = digit * digit * digit
        sum = sum + cube
return sum

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM