максимальное значение для конкретного примера (функция Коллатца)

С помощью некоторых людей здесь мне удалось найти значения остановки для диапазона начальных значений от 1 до 1000 в функции Коллатца. Функция Коллатца
(Моя ошибка была отсортирована с использованием новой переменной say s вместо c в цикле for, а затем с использованием c = s).

Сейчас я пытаюсь создать код для отслеживания максимального значения остановки (количество) для этих начальных значений (от 1 до 1000), а затем вывести его в конце. Может ли кто-нибудь дать мне несколько советов, если они знают, как это сделать?

Благодарю.

0

Решение

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

#include <iostream>
using namespace std;

int main()
{
long max = 0;
for(long c=2, c<=1000; c++) // define stopping value as 0 for c=1 elsewhere
{
long count=0;

while (c!=1)
{
if((c%2)==0)
{
c/=2;
}
else
{
c=3*c+1;

}

count ++;
}

if ( count > max ) max = count;
cout << "The stopping value for " << c << " is " << count << endl;

}

cout << "The max stopping value is " << max << endl;
return 0;
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector