홀수, 짝수일 때 함수가 다른 수열에서 가장 큰 값을 구하는 문제이다.
#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이 아닌 경우에는 계속해서 반복하여서 계산을 해주면 된다.