#include #include /* int main(int argc,char** argv) { int aa; scanf("%d",&aa); printf("bingo"); printf("%d", aa); return 0; } */ bool isEven(int n) { return (n%2==0); } int main(int argc,char** argv) { int rada[1000000]; int a; int b; int result; int steps = 0; int steps2 = 0; int kroky, kroky2 = 0; int next; bool quit = 0; //scanf("%d %d",&a,&b); //printf("%d %d\n", a,b); while(1){ scanf("%d %d",&a,&b); if (a == 0 && b == 0) { return 0; } //printf("bingo\n"); rada[0] = a; steps = 0; while(1) { steps++; if(isEven(rada[steps-1])){ rada[steps] = rada[steps-1]/2; }else{ rada[steps] = 3*rada[steps-1]+1; } //printf("%d \n",rada[steps]); if(rada[steps]==1) break; } //printf("nedostane\n"); //for(int i=0;i<=steps;i++){ // printf("%d %d\n",i,rada[i]); //} next = b; steps2 = 0; quit = 0; while(1) { for(int i=0; i<=steps; i++){ //printf("vysledek %d\n",rada[i]); if(rada[i]==next){ kroky2 = i; quit = 1; break; } } if (quit) { break; } steps2++; if(isEven(next)){ next = next/2; }else{ next = 3*next+1; } //printf("%d\n",next); /*for(int i=0;i<=steps;i++){ if(rada[steps]==next){ quit = 1; break; } }*/ } printf("%d needs %d steps, %d needs %d, they meet at %d\n", a,kroky2,b,steps2,next); } return 0; }