Форум » Обработка целых чисел » Задание 17 (№ 4408 Л.Шастин) » Ответить

Задание 17 (№ 4408 Л.Шастин)

uchitelka: [quote](№ 4408) (Л. Шастин) В файле 17-10.txt содержится последовательность целых чисел. Элементы последовательности могут принимать значения от 0 до 10000 включительно. Определите сначала количество пар, сумма элементов которых при переводе в систему счисления с основанием 7 образует число-палиндром, а затем наибольшую сумму-палиндром в семеричной системе счисления. Под парой чисел подразумевается два идущих подряд элемента последовательности.[/quote] Правильно ли я понимаю условие задачи: Сначала складываются цифры в двух десятичных числах. Затем эта сумма переводится в семеричное число. Если это число является палиндромом, то я его засчитываю и нахожу наибольший среди них. Так? Вот мой код программы. У меня ответ слишком маленький. Где я делаю не так, пожалуйста, подскажите? [pre2] a = [int(x) for x in open ('17-10.txt')] def c(x): x10 = 0 while x: x10 += x%10 x //= 10 return x10 def f(x): x7 = '' while x: s = x%7 x7 = str(s) + x7 x //= 7 return x7 def p(s): if len(s) > 1: rev = s[::-1] if (s == rev): return True return False ma = 0 count = 0 for i in range (1, len(a)): pal = f ( c(a[i-1]) + c(a [ i ] ) ) if p(pal): count += 1 ma = max(ma, int(pal) ) print(count, ma) [/pre2]

Ответов - 2

cabanov.alexey: Сумма двух чисел переводится в семеричную систему и проверяется на палиндром. Решение https://vk.com/video-205865487_456239078

uchitelka: Спасибо большое! Я не так поняла условие задачи. Усложнила его. Поняла, что элементы числа - это цифры, а там элементы пар - сами числа. Спасибо за короткий способ решения. Свое решение я тоже откорректировала, теперь с ответом сходится. [pre2] a = [int(x) for x in open ('17-10.txt')] def f(x): x7 = '' while x: s = x%7 x7 = str(s) + x7 x //= 7 return x7 def p(s): if len(s) > 1: rev = s[::-1] if (s == rev): return True return False ma = 0 count = 0 for i in range (1, len(a)): pal = f(a[i-1] + a [ i ] ) if p(pal): count += 1 ma = max(ma, int(pal) ) print(count, ma) [/pre2]



полная версия страницы