* 알고리즘 트레이닝 북 1번 문제입니다.

 간단한 문제지만 programming challenges 사이트에서 채점했는데 조건이 참 까다롭다고 느꼈습니다. 하지만 programming challenges 사이트가 안들어가져서 UVa에서 채점하는데 programming challenges가 좀더 너그러운 느낌이었습니다. -_-;

#include <stdio.h>
int main()
{
	long start, end, i, n, cycle_length, max_cycle_length;

	while(scanf("%d %d", &start, &end) == 2)
	{
		max_cycle_length = 0;
		for(i = (start < end ? start : end) ; i <= (start < end ? end : start) ; i++)
		{
			cycle_length = 1;
			n = i;
			while(n != 1)
			{
				if(n & 1)
				{
					n *= 3;
					n += 1;
				}
				else
				{
					n >>= 1;
				}
				cycle_length++;
			}
			if(max_cycle_length < cycle_length)
			{
				max_cycle_length = cycle_length;
			}
		}
		printf("%d %d %d\n", start, end, max_cycle_length);
	}

	return 0;
}


'스터디 > 알고리즘' 카테고리의 다른 글

Algorithm :: 저글링 방사능 오염  (0) 2012.08.02
Algorithm :: 해밀턴 순환회로  (0) 2012.08.01
Algorithm :: 소시지 공장  (0) 2012.07.16
Algorithm :: 회의실 배정  (0) 2012.07.14
Algorithm :: 지하철  (0) 2012.07.14
AND