되는대로 살자

[C언어 기출문제&풀이] 3n+1 본문

2009~2014/C/C++

[C언어 기출문제&풀이] 3n+1

malu 2011. 5. 11. 16:45

//풀이 :  2와 관련된 연산을 &연산자를 이용하여 한다(시간 줄임)



#include <stdio.h>

int main()
{
 long a,b,t_a,t_b,t;
 long i,j,length,max_length;
 max_length=0;
 while(scanf("%ld %ld",&a,&b)==2) {
  t_a=a;
  t_b=b;
  if(a>b) {
   t=a;
   a=b;
   b=t;
  }
  max_length=0;
  for(i=a;i<=b;i++)
  {
   j=i;
   length=1;
   while(j!=1){
    if(j&1) {
     j=3*j+1;
     length++;
    }
    while(!(j&1)){
     j >>= 1;
     length++;
    }
   }
   if(length>max_length)
    max_length=length;
  }
 printf("%ld %ld %ld\n",t_a,t_b,max_length);  
 }
}