mirror of
https://github.com/kuhyx/testsAndMisc-archive.git
synced 2026-07-04 21:23:03 +02:00
42 lines
705 B
C++
42 lines
705 B
C++
#include <iostream>
|
|
#include <math.h>
|
|
|
|
int threeNLoop(int n)
|
|
{
|
|
int steps = 0;
|
|
do{
|
|
if(n % 2 == 1)
|
|
{
|
|
n = (3*n + 1) / 2;
|
|
steps += 2;
|
|
}else
|
|
{
|
|
n /= 2;
|
|
steps++;
|
|
}
|
|
}while(n != 1);
|
|
return steps;
|
|
}
|
|
|
|
int main()
|
|
{
|
|
int n;
|
|
std::cout << "Enter n (where the numbers checked wil be at most 2 ^ n) value:" << std::endl;
|
|
std::cin >> n;
|
|
int maxSteps = 0;
|
|
int maxN = 1;
|
|
for(int i = 1; i <= pow(2, n); i++)
|
|
{
|
|
int currentSteps = threeNLoop(i);
|
|
if(currentSteps > maxSteps)
|
|
{
|
|
maxSteps = currentSteps;
|
|
maxN = i;
|
|
}
|
|
|
|
}
|
|
std::cout << "max steps: " << maxSteps << std::endl;
|
|
std::cout << "For n = " << maxN << std::endl;
|
|
return 0;
|
|
}
|