codingtests/solutions/ProjectEuler/014/solve.c

34 lines
505 B
C
Raw Normal View History

2012-03-08 15:41:12 +00:00
#define MAX 1000000-1
#include <stdio.h>
#include <math.h>
int main( )
{
unsigned int max_steps = 0;
unsigned int max_start;
unsigned int test;
unsigned long ctest;
unsigned int steps;
for(test = MAX; test > 1 ; test--)
{
ctest = test;
steps = 1;
while(ctest != 1)
{
ctest = ( ctest % 2 ) ? ctest * 3 + 1 : ctest / 2;
steps++;
}
if(steps > max_steps)
{
max_start = test;
max_steps = steps;
}
}
printf( "%lu", max_start );
}