Чтобы решить задачу, нужно написать программу, которая определит количество палиндромов, не превышающих заданное число ( K ). Палиндром — это число, которое читается одинаково как слева направо, так и справа налево. Например, числа 121, 22 и 9 являются палиндромами.
Пошаговое решение
Считывание входных данных:
Программа должна считать число ( K ) из входных данных.
Определение палиндромов:
Нужно проверить все числа от 1 до ( K ) на то, являются ли они палиндромами.
Подсчет палиндромов:
Подсчитываем количество чисел, которые являются палиндромами.
Псевдокод
- Ввести число ( K ).
- Инициализировать счетчик палиндромов.
- Для каждого числа от 1 до ( K ):
- Преобразовать число в строку.
- Проверить, совпадает ли строка с ее обратной версией.
- Если совпадает, увеличить счетчик палиндромов.
- Вывести значение счетчика.
Реализация на Python
def count_palindromes(K):
count = 0
for num in range(1, K + 1):
# Преобразуем число в строку
str_num = str(num)
# Проверяем, является ли строка палиндромом
if str_num == str_num[::-1]:
count += 1
return count
# Считывание входного значения
K = int(input())
# Вычисление и вывод результата
print(count_palindromes(K))
Объяснение кода
Функция count_palindromes(K):
- Инициализируем переменную
count
для подсчета палиндромов.
- Проходимся по всем числам от 1 до ( K ) включительно.
- Преобразуем каждое число в строку и проверяем, является ли оно палиндромом путем сравнения строки с ее обратной версией (
str_num[::-1]
).
- Если число является палиндромом, увеличиваем счетчик
count
.
Считывание и вывод:
- Считываем число ( K ) с помощью функции
input()
.
- Вызываем функцию
count_palindromes(K)
и выводим результат.
Примеры выполнения
Входное значение: 1
- Выходное значение: 1 (только число 1 является палиндромом)
Входное значение: 100
- Выходное значение: 18 (палиндромы от 1 до 100: 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 22, 33, 44, 55, 66, 77, 88, 99)
Таким образом, программа корректно определяет количество натуральных палиндромов, не превосходящих заданное число ( K ).