본문 바로가기

Algorithm/Implementation

(C++) - 백준(BOJ) 3943번 : 헤일스톤 수열

반응형

www.acmicpc.net/problem/3943

 

3943번: 헤일스톤 수열

첫째 줄에 테스트 케이스의 개수 T(1 ≤ T ≤ 100,000)가 주어진다. 다음 줄부터 T개의 줄에는 헤일스톤 수열의 시작값 n이 주어진다. (1 ≤ n ≤ 100,000)

www.acmicpc.net

구현문제였습니다.

 

* 입출력이 많으므로 시간초과가 나지 않도록 c와 동기화를 끊어줘야 합니다.

 

Code

#include <bits/stdc++.h>
#define fastio ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
using namespace std;
int n, t;
int main(){
    fastio;
    cin >> t;
    while(t--){
        cin >> n;
        int big = n;
        while(n != 1){
            int num;
            if(n%2) num = n*3 + 1;
            else num = n/2;
            n = num;
            big = max(big,num);
        }
        cout << big << '\n';
    }

}