[C++][백준 5679] Hailstone Sequences

PublicMinsu·2024년 6월 23일
0

문제

접근 방법

홀수, 짝수일 때 함수가 다른 수열에서 가장 큰 값을 구하는 문제이다.

코드

#include <iostream>
using namespace std;
int h, answer;
int main()
{
    ios::sync_with_stdio(0), cin.tie(0);
    while (true)
    {
        cin >> h;

        if (h == 0)
        {
            break;
        }

        answer = h;

        while (h != 1)
        {
            if (h % 2)
            {
                h = 3 * h + 1;

                answer = max(h, answer);
            }
            else
            {
                h /= 2;
            }
        }

        cout << answer << "\n";
    }
    return 0;
}

풀이

홀수인 경우에만 값이 오르므로 홀수일 때와 맨 처음 값으로 답의 갱신을 해주면 된다.

h가 1이 아닌 경우에는 계속해서 반복하여서 계산을 해주면 된다.

profile
연락 : publicminsu@naver.com

0개의 댓글