ПРОГРАММА НА ПИТОН!!!!
Палиндром - это число, одинаково читающееся в обоих направлениях (не меняется при перестановке своих цифр в обратном порядке).
Дано натуральное число K. Выведите на экран количество натуральных палиндромов, не превосходящих число К.
Входные данные
Задано единственное число K (1<=K<=100000).
Выходные данные
Необходимо вывести количество натуральных палиндромов, не превосходящих K.
Примеры
Входные данные -
1
1
Выходные данные -
100
18
Запрещенные операторы: list;[;find;index;reverse
Ответы
Ответ дал:
0
Первый способ.
def ispalindrom(n): #Если палиндром True, иначе False.
k = n
m = 0
while k!= 0:
m = 10 * m + k % 10
k //= 10
return m == n
print(f'Количество палиндромов:',sum(map(ispalindrom, range(1, int(input('Введите число K: '))+1))))
Второй способ. (c использованием строк)
print(f'Количество палиндромов:',sum(map(lambda x: str(x) == str(x)[::-1], range(1, int(input('Введите число K: '))+1))))
Приложения:
mathgenius:
Можно решить быстрее через строки, но не знаю, можно ли их использовать в
этой задаче
А вообще задачка легко считается математически, можно вывести формулу количества палиндромов на интервале, но в решении этого делать не стал, ибо это не цель задания...
Через строки проверка на палиндром может быть записана в одну строчку: n == n[::-1] , тут n это строковый номер.
В этом случае решение уложится в одну строчку:
print(f'Количество палиндромов:',sum(map(lambda x: str(x) == str(x)[::-1], range(1, int(input('Введите число K: '))+1))))
Вас заинтересует
2 года назад
2 года назад
2 года назад
2 года назад
8 лет назад
8 лет назад
9 лет назад