[shkola] 3n+1 prob

dneska si govorihme za taia zadachka , eto vi src-to ot men. Raboti si
barzo, ama nestop ne ia priemat v acm ... niamam idea za kakvo probvah
niakolko bruteforce varianta vadiat sastite rezultati :(/ Priatno
razglezdane :
#include <stdio.h>

#define MAX_VAL 3000000

long long dyn_data[MAX_VAL];

long long steps( long long check_val) {
    if (check_val < MAX_VAL) {
       if (dyn_data[check_val] != 0 )
          return dyn_data[check_val];

       if (check_val % 2 == 1)
          dyn_data[check_val] = steps(3*check_val + 1) + 1;
       else
          dyn_data[check_val] = steps(check_val/2) + 1;

       return dyn_data[check_val];
       
    }
    else {
        long long num_steps = 0;
        
        while ( check_val >= MAX_VAL) {
             num_steps++;

             if (check_val % 2 == 1)
                check_val = 3*check_val +1;
             else
                check_val /=2;


        }

        return steps(check_val) + num_steps;
    }
}

int main() {
    int i,j,l;
    int max_l;
    int el_read;
    
    dyn_data[1] = 1;


    while ( el_read = scanf("%i %j",&i,&j) == 2) {
          long long curr_max = 0;

          for (l=i; l<=j; l++) {
             if (steps(l) > curr_max) {
                curr_max = steps(l);
                max_l = l;
             }
          }
          printf("%d %d %d\n",i,j,curr_max);

    }
    
    return 0;
}

Other related posts: