Share This
Связаться со мной
Крути в низ
Categories
//Игры со сложением: задача на написание кода на Python

Игры со сложением: задача на написание кода на Python

22.03.2021Category : Python

Как обычно, ваша задача — написать функцию. Функция будет принимать любое число. Из цифр этого числа нужно будет составить пары и сложить получившиеся числа. Функция должна вернуть сумму чисел, составленных из пар цифр.

Для составления пары берем первую и последнюю цифру числа, продвигаясь от краев к центру.

Пример с разбором

 closing_in_sum(2520) ➞ 72  # Первая и последняя цифры - 2 и 0.  # Из цифр 2 и 0 составляем число 20.  # Вторая и предпоследняя цифра - 5 и 2.  # Из цифр 5 и 2 составляем число 52.  # 20 + 52 = 72

Другие примеры

 closing_in_sum(121) ➞ 13  # 11 + 2  closing_in_sum(1039) ➞ 22  # 19 + 3  closing_in_sum(22225555) ➞ 100  # 25 + 25 + 25 + 25

Примечания

  • Если передано нечетное число, центральную цифру просто прибавляем к общей сумме (см. пример 1).
  • Нуль тоже считаем отдельной цифрой (см. пример 2).

Варианты решений

def closing_in_sum(n):     n = str(n)     if len(n) <= 2:         return int(n)     return int(n[0] + n[-1]) + closing_in_sum(n[1:-1])
from itertools import zip_longest ​ def closing_in_sum(n):     s = str(n)     half = len(s) // 2     return sum(         int(i + j)         for i, j in zip_longest(s[:half], s[half:], fillvalue='0')     )
def zipper(a, b):     return sum([int(x + y) for x, y in zip(a, b)]) ​ def closing_in_sum(num):     n = str(num)     l = len(n)     a = n[:l//2]      b = n[l//2 + 1:] if l % 2 else n[l//2:]     c = n[l//2]     return zipper(a, b) + int(c) if l % 2 else zipper(a, b)
  • 21 views
  • 0 Comment

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Связаться со мной
Close