본문 바로가기

Programing/알고리즘

알고리즘 트레이닝 북 3n+1 문제


// AlgoChallenges.cpp : 콘솔 응용 프로그램에 대한 진입점을 정의합니다.
//

#include "stdafx.h"
#include <iostream>

using namespace std;

int Calc(int num)
{
 
 int cnt = 1;

 while( num != 1)
 {
  //짝수면
  if( (num % 2) == 0 )
  {
   num = num / 2;

  }
  else //홀수면
  {
   num =(num* 3) +1;
  }

  cnt++;

 }
 

 return cnt;

}

int _tmain(int argc, _TCHAR* argv[])
{
 int inputA =0 , inputB = 0;
 cin >> inputA >> inputB;

 int curNum= 0;
 int oldMaxNum= 0;

 cout<< "A: " << inputA << ",  B: "<< inputB <<endl;

 for(int i = inputA; i<= inputB; ++i)
 {

  curNum = Calc(i);

  if(curNum > oldMaxNum)
   oldMaxNum = curNum;

 }

 cout<< oldMaxNum <<endl;
 

 return 0;
}

 

'Programing > 알고리즘' 카테고리의 다른 글

The Trip  (0) 2011.12.05
알고리즘 트레이닝 북 지뢰찾기  (0) 2011.12.05