
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

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

Ответ:
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.
Объяснение:
на питоне не скажу, но паскаль я покажу



Для решения данной задачи, вам нужно будет написать программу на Python. Вы можете использовать следующий код:
pythondef 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
в единственной строке, как указано в задаче, и программа выдаст максимальное значение и индекс этого значения в последовательности.
Помните, что этот код рассчитан на ввод данных с клавиатуры. Если у вас есть файл с данными в нужном формате, вы можете адаптировать код для чтения данных из файла.


Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili