Python если заявление найти номера Армстронга - PullRequest
0 голосов
/ 31 января 2020
n = int(input("" ""))
l = []
for i in  range(n):
    a = int(input())
    l.append(a)
    s=0
for i in l:
    temp = i

    while temp>0:
        d = temp % 10
        s += d**3
        temp //= 10
    if n == s:
        print("yes")
    else:
        print("no")

Я пытаюсь напечатать «да», если число является числом Армстронга, и «нет», если нет. Но код запускает только часть else. if часть не выполняется, пожалуйста, помогите.

1 Ответ

1 голос
/ 31 января 2020

Вы должны изменить if n == s: на if i == s:, поскольку i - это число для тестирования, а n - это число, которое вы тестируете.

И, как сказал Дэмиен, s должно быть инициализирован на 0 для каждого i

n = int(input("" ""))
l = []
for i in range(n):
    a = int(input())
    l.append(a)
for i in l:
    s=0
    temp = i

    while temp>0:
        d = temp % 10
        s += d**3
        temp //= 10
    if i == s:
        print("yes")
    else:
        print("no")

Тестовая часть:

1 # input, n = how many numbers i to test
1 # input, i = number to test
yes # output
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...