• Задание срочно на питоне пожалуйста!!!!!Итерационный процесс Итерационный процесс задается следующими формулами an+1=an/2 , если an — чётное число an+1=3an+1 , если an — нечётное число Для заданой начальной величины вам необходимо вычислить заданное количество первых членов и посмотреть, какого наибольшего значения достигнут три последних разряда получаемых чисел. Напишите программу, которая выведет найденный максимум. Формат входных данных В единственной строке через пробел заданы два целых числа: a0 — начальный член последовательности и k — количество членов, которые надо вычислить, то есть k — индекс последнего вычисленного члена (1≤a0≤107, 0≤k≤104 ). Для считывания данных из одной строки в языке Python можно использовать конструкцию: a, k = map(int, input().split()) Гарантируется, что все получаемые члены последовательности не превосходят 109 . Формат выходных данных Выведите через пробел два целых числа — член последовательности ai , 0≤i≤k, для которого три последние цифры дают максимальное число, и индекс i этого члена. Если таких членов несколько, выведите тот, который имеет больший индекс. Ввод Вывод 1996 400 998 1

Ответы 1

  • Ответ:

    def sequence_max(a0, k):

       seq = [a0]  # список для сохранения членов последовательности

       for i in range(k):

           if seq[i] % 2 == 0:

               seq.append(seq[i] // 2)

           else:

               seq.append(3 * seq[i] + 1)

       max_val = seq[0]  # начальное значение максимума

       max_idx = 0  # начальный индекс максимума

       for i, val in enumerate(seq):

           # выбираем максимальное значение по трем последним цифрам

           if val % 1000 > max_val % 1000:

               max_val = val

               max_idx = i

       return max_val, max_idx

    a0, k = map(int, input().split())

    result = sequence_max(a0, k)

    print(result[0], result[1])

  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years