• СРОЧНО ЯЗЫК С++ ОСТАЛСЯ ЧАС ДАЮ 60 БАЛЛОВ Итерационный процесс Итерационный процесс задается следующими формулами 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

  • Ответ: Для каждого элемента последовательности будем вычислять его остаток от деления на 1000 (последние три разряда) и находить максимальное значение. Если несколько элементов имеют одинаковые максимальные последние три разряда, то будем хранить индекс последнего из них.

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

    Программа на языке Python:

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

    max_last_three_digits = 0

    max_last_three_digits_index = 0

    for i in range(k+1):

       if i > 0:

           if a % 2 == 0:

               a = a // 2

           else:

               a = 3*a + 1

       last_three_digits = a % 1000

       if last_three_digits >= max_last_three_digits:

           max_last_three_digits = last_three_digits

           max_last_three_digits_index = i

    print(max_last_three_digits, max_last_three_digits_index)

    Пример использования:

    Входные данные:

    1996 400

    Выходные данные:

    998 1

    В этом примере последняя цифра максимальна у чисел 998 и 1558, но по условию задачи необходимо вывести тот элемент, у которого больше индекс. Индекс 998 равен 1, а индекс 1558 равен 331. Поэтому выводим число 998 и его индекс 1.

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

Еще вопросы

Войти через Google

или

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

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

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