2016년 3월 3일 목요일

5679 - Hailstone Sequences

어떤 정수 H 로부터 시작한 헤일스톤 수열의 원소 중에서 가장 큰 원소를 출력하는 문제이다.

특별한 기술 없이 짝수이면 2로 나누고, 홀수이면 3을 곱한 후 1을 빼는 연산을 반복하면서 1이 될 때까지 반복하면서 최대값을 갱신하면 된다.

비슷한 문제가 더블릿에도 있다. (여기선 수열의 길이가 아닌 수열 전체를 출력한다.)
그리고 더블릿의 문제와 똑같은 문제가 BOJ에 따로 있다.


main(k,r){while(~scanf("%d",&k)&&k){r=1;while(k>1)r=r<k?k:r,k=(k&1)?(3*k+1):(k/2);printf("%d\n",r);}}

댓글 없음:

게시글 목록