Предмет: Информатика, автор: mariyatemizkan

Срочно С++
Итерационный процесс
Итерационный процесс задается следующими формулами

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

Ответы

Автор ответа: alexdungeons182
1

Відповідь:

решение задачи на языке C++:

#include <iostream>

using namespace std;

int main() {

   int a, k;

   cin >> a >> k;

   int max_num = a % 1000;

   int max_idx = 0;

   for (int i = 0; i <= k; i++) {

       if (a % 1000 > max_num) {

           max_num = a % 1000;

           max_idx = i;

       }

       if (a % 2 == 0) {

           a = a / 2;

       } else {

           a = 3 * a + 1;

       }

   }

   cout << max_num << " " << max_idx << endl;

   return 0;

}

Сначала мы считываем начальное значение 'a' и количество членов последовательности, которые надо вычислить 'k'. Затем мы перебираем все члены последовательности от 'a0' до 'ak' и находим максимальное значение последних трех цифр среди всех полученных значений. Когда мы находим такое значение, мы запоминаем его и соответствующий индекс члена последовательности. В конце мы выводим найденный максимум и соответствующий индекс.


mariyatemizkan: Cgfcb,j
mariyatemizkan: Спасибо
Похожие вопросы