Вопрос задан 24.06.2023 в 00:35. Предмет Информатика. Спрашивает Былкина Татьяна.

Срочно даю 50 баллов Петя Торопыжкин познакомился с гипотезой Коллатца: какое бы натуральное

число a0 ни взять, последовательность (часто называемая сиракузской ), вычисляемая от выбранного числа по правилу an+1=an/2, если an — чётное число an+1=3an+1, если an — нечётное число обязательно достигнет единицы. Он решил поэкспериментировать с последовательностью: задать начальную величину, вычислить сколько-то первых членов и посмотреть, какого наибольшего значения они достигнут. Только на калькуляторе, на котором он считал, сломался экран, и было видно только три последних разряда получаемых чисел. Поэтому Петя искал максимум из тех чисел, которые он видел. Напишите программу, которая выведет найденный им максимум.
0 0
Перейти к ответам

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

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

Ответ:

#include <iostream>

using namespace std;

int A[104],n,k;

void posl(){

A[0]=n;

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

if (A[i-1]%2==0){A[i]=A[i-1]/2;}

else{A[i]=3*A[i-1]+1;}

}

}

int max(){

int m=A[0];

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

if(A[i]%1000>m%1000){m=A[i];}

}

return m;

}

int main() {

int nom,maximum;

cin >>n>>k;

posl();

maximum=max();

cout <<maximum;

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

if (A[i]==maximum){nom=i;}

}

cout <<" "<<nom;

}

Объяснение:

Вот.

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

Конечно, вот Python программа для нахождения максимума из чисел, которые Петя видел в последовательности Коллатца:

python
def collatz_sequence(n): sequence = [n] while n != 1: if n % 2 == 0: n = n // 2 else: n = 3 * n + 1 sequence.append(n) return sequence def main(): start_number = int(input("Введите начальное число (a0): ")) num_terms = int(input("Введите количество первых членов последовательности: ")) max_seen = 0 for a0 in range(start_number, start_number - num_terms, -1): sequence = collatz_sequence(a0) max_term = max(sequence[-3:]) # Получаем три последних члена и находим максимум max_seen = max(max_seen, max_term) print("Наибольшее значение, которое он видел:", max_seen) if __name__ == "__main": main()

Эта программа запрашивает начальное число a0 и количество первых членов последовательности, которые Петя хочет исследовать. Затем она вычисляет последовательность Коллатца для каждого числа, начиная с a0 и идя вниз до a0 - num_terms + 1, находит максимум из трех последних членов для каждой последовательности и выводит наибольшее значение, которое Петя видел.

0 0

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

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

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

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