• Предмет: Информатика
  • Автор: shushablinchik
  • Вопрос задан 3 месяца назад

ДАЮ 100 БАЛЛОВ! СРОЧНО!

Напишите код на языке Python.

Игра «Космическое домино».
Правила.
1. В игре участвуют только ТРЕХЗНАЧНЫЕ числа.
2. Перед началом игры для каждого игрока случайным образом генерируется некоторый диапазон трехзначных чисел, из которого и ТОЛЬКО из него он может выбирать числа для продолжения игры.
3. Первые два стартовых числа генерируются тоже компьютером.
4. Игроки ходят по очереди, доставляя сопряженное число из своего диапазона (если такое есть) к левому или правому концу цепочки.
5. Если у игрока нет в диапазоне числа, сопрягаемого ни с одним из концов цепочки, то игра завершается его проигрышем.

Определение: число M называется сопрягаемым с числом N, если оно построено по следующим правилам:
1. Если N нечетное, то число M начинается с нечетной цифры, если N – четное, то с четной (но не с 0!)
2. Последние две цифры числа M есть сумма цифр числа N.
Заметим, что оба числа являются трехзначными!
Например, если N = 213, тогда M может быть 106, 306, 506, 706 или 906. Для числа N = 914, число M может быть только 214, 414, 614 или 814.
Примечание: числа в цепочке могут повторяться.

Входные данные:
L и R два натуральных трехзначных числа через пробел в одной строке. Левое и правое число в цепочке соответственно.
A и B два натуральных трехзначных числа через пробел в одной строке. Диапазон, который выпал игроку в начале игры. A < B. Число A или B также может быть выбрано игроком для хода, если является сопрягаемым с концом цепочки.

Выходные данные:
На первой строчке количество чисел, сопрягаемых с концами цепочки из диапазона игрока.
На второй строке минимальное из этих чисел с указанием перед ним без пробела литеры “ L”, если его надо поставить к левому концу, и литеры “R”, если к правому. Если число можно добавить в любой конец, то ставим его в левый конец.

Ответы

Ответ дал: chelovek228tiktok
0

Ответ:

вроде так. если не правильно, то я переделаю

Объяснение:def is_conjugate(N, M):

   if N % 2 == 0:

       return (M // 100) % 2 == 0 and ((M % 100) // 10 + (M % 10)) == N

   else:

       return (M // 100) % 2 != 0 and ((M % 100) // 10 + (M % 10)) == N

def find_conjugate_numbers(N, A, B):

   conjugate_numbers = []

   

   for number in range(A, B + 1):

       if is_conjugate(N, number):

           conjugate_numbers.append(number)

   

   return conjugate_numbers

def main():

   L, R = map(int, input().split())

   A, B = map(int, input().split())

   

   left_conjugate_numbers = find_conjugate_numbers(L, A, B)

   right_conjugate_numbers = find_conjugate_numbers(R, A, B)

   

   print(len(left_conjugate_numbers) + len(right_conjugate_numbers))

   

   if left_conjugate_numbers:

       min_left = min(left_conjugate_numbers)

       print(f"{min_left} L")

   else:

       min_right = min(right_conjugate_numbers)

       print(f"{min_right} R")

if __name__ == "__main":

   main()

Вас заинтересует