int getLenth(long long int no){ //, int length){ if ( no <= 1) return 0; if ( no % 2 == 0){ no = no / 2; length++; if ((no < N) && (length_i[no] != 0)){ length = length + length_i[no]; return 0; } else getLenth(no) ;//, length); } else{ no = 3*no +1; length++; if ((no < N)&& (length_i[no] != 0)){ length = length + length_i[no]; return 0; } else getLenth(no) ;//, length); } }
unsigned char *DataParse::getPrivData() { if (getLenth() > sizeof(merge_user_t)) { return (((unsigned char*)user_) + sizeof(merge_user_t)); } return NULL; }
int main(int argc, char* argv[]){ long long int no, ret = -1, i, j = 1; //, length = 1; // long long int *result; while (--argc > 0){ no = atoi(argv[j]); j++; // result = (long long int*)malloc(no * sizeof(long long int)); //for (i = 0; i < no; i++) // for (i = no-1; i > 0; i--){ // result[i] = i; //make_zero(i, result); // } for (i = no-1; i>0; i--){ //for (i = no-1; i>0; i--){ // make_zero(i, result); if (0 == length_i[i]){ getLenth(i); length_i[i] = length; } if (length_i[i] > final_length ){ final_length = length_i[i]; final_number = i; //final_number = i; } length = 1; } printf ("%lld\n", final_number); i = 0; length = 1; final_length = 1; // free(result); } return 0; }