Что такое симметричное число в Python? Объяснение и примеры!
Симметричное число в Python - это число, которое остается неизменным при чтении его справа налево или слева направо. Другими словами, это число, которое выглядит одинаково, если его перевернуть задом наперёд. Например, число 121 - это симметричное число, так как оно читается одинаково и слева, и справа. Вот пример кода, который проверяет, является ли число симметричным:
def is_symmetric(number):
number = str(number)
return number == number[::-1]
# Пример использования функции
print(is_symmetric(121)) # Вывод: True
print(is_symmetric(123)) # Вывод: False
Детальный ответ
Что значит симметричное число в Python?
Симметричное число в Python - это число, которое выглядит одинаково при чтении его слева направо и справа налево. Например, числа 121, 1331 и 4554 являются симметричными числами.
Как проверить, является ли число симметричным в Python? Давайте рассмотрим несколько подходов.
1. Метод перевода числа в строку
Один из способов проверить, является ли число симметричным, заключается в преобразовании числа в строку и сравнении его с обратной версией этой строки. Если они совпадают, то число симметрично.
def is_symmetric(number):
num_str = str(number)
reverse_str = num_str[::-1]
return num_str == reverse_str
# Пример использования
num = 1221
if is_symmetric(num):
print("Число", num, "является симметричным")
else:
print("Число", num, "не является симметричным")
2. Метод получения обратного числа
Еще один способ определить, является ли число симметричным, заключается в получении обратного числа и сравнении его с исходным числом. Если они равны, то число симметрично.
def is_symmetric(number):
reverse_num = 0
temp_num = number
while temp_num > 0:
digit = temp_num % 10
reverse_num = reverse_num * 10 + digit
temp_num = temp_num // 10
return number == reverse_num
# Пример использования
num = 12321
if is_symmetric(num):
print("Число", num, "является симметричным")
else:
print("Число", num, "не является симметричным")
3. Метод работы с половинами числа
Еще один способ проверить, является ли число симметричным, заключается в разделении числа на две половины и сравнении их. Если обе половины равны, то число симметрично.
def is_symmetric(number):
num_str = str(number)
length = len(num_str)
half_length = length // 2
first_half = num_str[:half_length]
second_half = num_str[-half_length:]
return first_half == second_half[::-1]
# Пример использования
num = 456654
if is_symmetric(num):
print("Число", num, "является симметричным")
else:
print("Число", num, "не является симметричным")
4. Метод использования рекурсии
Рекурсивный подход также может быть использован для определения симметричности числа. Мы можем сравнивать первую и последнюю цифры числа, а затем сокращать число, удаляя эти цифры, и повторять этот процесс, пока не останется одна цифра или если число не прекратит быть симметричным.
def is_symmetric(number):
num_str = str(number)
if len(num_str) <= 1:
return True
if num_str[0] == num_str[-1]:
return is_symmetric(num_str[1:-1])
return False
# Пример использования
num = 9876789
if is_symmetric(num):
print("Число", num, "является симметричным")
else:
print("Число", num, "не является симметричным")
Итак, теперь у вас есть несколько способов проверить, является ли число симметричным в Python. Вы можете выбрать подход, который вам более удобен и применить его в своих программах.