maksimlymar200
11.03.2021 18:25

Максимум на сломанном калькуляторе Петя Торопыжкин познакомился с гипотезой Коллатца: какое бы натуральное число a0 ни взять, последовательность (часто называемая сиракузской ), вычисляемая от выбранного числа по правилу

an+1=an/2, если an — чётное число

an+1=3an+1, если an — нечётное число

обязательно достигнет единицы. Он решил поэкспериментировать с последовательностью: задать начальную величину, вычислить сколько-то первых членов и посмотреть, какого наибольшего значения они достигнут. Только на калькуляторе, на котором он считал, сломался экран, и было видно только три последних разряда получаемых чисел. Поэтому Петя искал максимум из тех чисел, которые он видел. Напишите программу, которая выведет найденный им максимум.

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

В единственной строке через пробел заданы два целых числа: a0 — начальный член последовательности и k — количество членов, которые вычисляет Петя, то есть индекс последнего вычисленного члена (1≤a0≤107, 0≤k≤104). Гарантируется, что все получаемые члены последовательности не превосходят 109.

Выходные данные C++

Выведите через пробел два целых числа — член последовательности ai, 0≤i≤k, для которого три последние цифры дают максимальное число, и индекс i этого члена. Если таких членов несколько, выведите тот, который имеет больший индекс.

Примеры
Ввод
Вывод
2518 5
1889 3

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
magomedov254
19.06.2022 04:57
Векторные изображения состоят из контуров. которые в свою очередь могут быть : гладкими и угловами. Растровые изображения состоят из точек которые и называют растром или пиксель. Растровые изображения выглядят боилее реалистичнее, такие изображения сохраняются в файлах большего объема. чем векторные. потому что в них запоминается информация о каждом пикселе изображения и такие изображения зависят от их размера. Свободное масштбирование таких изображений без потери качества к ним неприменимо. И эта причина несколько затрудяет их редактирование и обработку.
0,0(0 оценок)
Ответ:
коршун4
04.10.2020 10:00
// PascalABC.NET 3.2, сборка 1387 от 20.02.2017
// Внимание! Если программа не работает, обновите версию!

begin
  var a:=ArrRandom(ReadInteger('n='),-99,99); a.Println;
  var a0:=a[0];
  var b:=a[1:].Where(x->x mod a0=0).ToArray;
  if b.Length>0 then b.Println
  else Writeln('Нет элементов, кратных первому');
end.

Пример
n= 16
-11 85 11 -9 -24 32 6 42 -92 -69 -87 2 -11 -77 -94 66
11 -11 -77 66

Замечание.
Если первый элемент тоже нужно включить в результирующий массив,
нужно записать так: var b:=Where(x->x mod a0=0).ToArray;
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота