Предмет: Информатика,
автор: plohojlos83826
Срочно даю 50 баллов
Петя Торопыжкин познакомился с гипотезой Коллатца: какое бы натуральное число a0 ни взять, последовательность (часто называемая сиракузской ), вычисляемая от выбранного числа по правилу
an+1=an/2, если an — чётное число
an+1=3an+1, если an — нечётное число
обязательно достигнет единицы. Он решил поэкспериментировать с последовательностью: задать начальную величину, вычислить сколько-то первых членов и посмотреть, какого наибольшего значения они достигнут. Только на калькуляторе, на котором он считал, сломался экран, и было видно только три последних разряда получаемых чисел. Поэтому Петя искал максимум из тех чисел, которые он видел. Напишите программу, которая выведет найденный им максимум.
Ответы
Автор ответа:
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;
}
Объяснение:
Вот.
Похожие вопросы
Предмет: Окружающий мир,
автор: kostsveta1981
Предмет: Английский язык,
автор: nuraizturgan
Предмет: Русский язык,
автор: mazmaew
Предмет: Литература,
автор: loki44