С помощью некоторых людей здесь мне удалось найти значения остановки для диапазона начальных значений от 1 до 1000 в функции Коллатца. Функция Коллатца
(Моя ошибка была отсортирована с использованием новой переменной say s вместо c в цикле for, а затем с использованием c = s).
Сейчас я пытаюсь создать код для отслеживания максимального значения остановки (количество) для этих начальных значений (от 1 до 1000), а затем вывести его в конце. Может ли кто-нибудь дать мне несколько советов, если они знают, как это сделать?
Благодарю.
Определите максимум ноль, прежде чем запускать цикл в первый раз. Затем проверьте, больше ли значение вашего останова, чем текущее максимальное значение: если это так, установите текущий максимум на текущий останов. Повторяйте это каждый раз, когда вы нашли стоп-значение.
#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;
}
Других решений пока нет …