Добавление обратного предыдущего числа для достижения палиндрома в python - PullRequest
1 голос
/ 28 мая 2020

Примите число в качестве входных данных и проверьте, является ли данное число палиндромом или нет, если это число палиндрома, распечатайте число на экране, если это не число палиндрома, переверните это число и добавьте его к предыдущему числу, повторяйте это до тех пор, пока получит номер палиндрома и напечатает этот номер палиндрома на экране

ввод: 127

вывод: 848

Я буду очень благодарен, если кто-нибудь сможет решить эту проблему:

    n = int(input())
    if str(n) == str(n)[::-1]:
        print(str(n)[::-1],"is a palindrome")
    else:

что писать в другом условии

Ответы [ 2 ]

0 голосов
/ 26 августа 2020

Математическое решение - без преобразования в строку - будет

def revert(x: int) -> int:
    x = abs(x)
    r = 0
    while x:
        x, m = divmod(x, 10)
        r = r * 10 + m
    return r
def findPalindrome(x: int) -> bool:
    if x < 0:
        return 0
    r = revert(x)
    if x == r:
        return x
    else:
        return findPalindrome(x + r)
0 голосов
/ 28 мая 2020

У меня работает:

n = int(input())
while True :
    if str(n) == str(n)[::-1]:
        print(str(n)[::-1],"is a palindrome")
        break
    else:
        n += int(str(n)[::-1])
...