Вопрос задан 23.06.2023 в 19:18. Предмет Информатика. Спрашивает Рааг Арина.

PYTHON СРОЧНО ДАЮ 50 БАЛЛОВМаксимум на сломанном калькуляторе Петя Торопыжкин познакомился с

гипотезой Коллатца: какое бы натуральное число a0 ни взять, последовательность (часто называемая сиракузской ), вычисляемая от выбранного числа по правилуan+1=an/2, если an — чётное числоan+1=3an+1, если an — нечётное числообязательно достигнет единицы. Он решил поэкспериментировать с последовательностью: задать начальную величину, вычислить сколько-то первых членов и посмотреть, какого наибольшего значения они достигнут. Только на калькуляторе, на котором он считал, сломался экран, и было видно только три последних разряда получаемых чисел. Поэтому Петя искал максимум из тех чисел, которые он видел. Напишите программу, которая выведет найденный им максимум.Входные данныеВ единственной строке через пробел заданы два целых числа: a0 — начальный член последовательности и k — количество членов, которые вычисляет Петя, то есть индекс последнего вычисленного члена (1≤a0≤107, 0≤k≤104). Гарантируется, что все получаемые члены последовательности не превосходят 109.Выходные данныеВыведите через пробел два целых числа — член последовательности ai, 0≤i≤k, для которого три последние цифры дают максимальное число, и индекс i этого члена. Если таких членов несколько, выведите тот, который имеет больший индекс.ПримерыВводВывод2518 51889 3
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Терещук Артем.

Ответ:

var a,k,steps,x,p,n,max,s,m:integer;    

begin

readln(a,p);

max:=0;k:=0;          

while (k<>p) do

begin

 if odd(a) then a:=a*3+1  else a:=a div 2;  

 k:=k+1;

 m:=a mod 1000;

 if m>max then begin  max:=m;n:=a;x:=k;end;

end;

writeln(n,' ',x);

end.

Объяснение:

на питоне не скажу, но паскаль я покажу

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для решения данной задачи, вам нужно будет написать программу на Python. Вы можете использовать следующий код:

python
def collatz(a0, k): max_val = a0 max_idx = 0 for i in range(k + 1): if a0 > max_val: max_val = a0 max_idx = i if a0 % 2 == 0: a0 = a0 // 2 else: a0 = 3 * a0 + 1 return max_val, max_idx # Ввод данных a0, k = map(int, input().split()) # Вычисление максимума result = collatz(a0, k) # Вывод результата print(result[0], result[1])

Просто введите начальное значение a0 и количество членов k в единственной строке, как указано в задаче, и программа выдаст максимальное значение и индекс этого значения в последовательности.

Помните, что этот код рассчитан на ввод данных с клавиатуры. Если у вас есть файл с данными в нужном формате, вы можете адаптировать код для чтения данных из файла.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос