πŸ“¦ Chango/🏫 First Solve at School

[BOJ B3][C++] λ°±μ€€ 14920번: 3n+1 μˆ˜μ—΄

선달 2022. 12. 28. 13:59
λ°˜μ‘ν˜•

https://www.acmicpc.net/problem/14920

 

14920번: 3n+1 μˆ˜μ—΄

λ‹€μŒμ˜ 점화식에 μ˜ν•΄ μ •ν•΄μ§€λŠ” μˆ˜μ—΄ C(n)을 μƒκ°ν•˜μž: C(n+1) = C(n)/2 (C(n)이 짝수일 λ•Œ) = 3*C(n)+1 (C(n)이 ν™€μˆ˜μΌ λ•Œ) μ΄ˆν•­ C(1)이 μžμ—°μˆ˜λ‘œ 주어지면, 이 점화식은 μžμ—°μˆ˜λ‘œ μ΄λ£¨μ–΄μ§€λŠ” μˆ˜μ—΄μ„ μ •ν•œλ‹€.

www.acmicpc.net

 

문제

λ‹€μŒμ˜ 점화식에 μ˜ν•΄ μ •ν•΄μ§€λŠ” μˆ˜μ—΄ C(n)을 μƒκ°ν•˜μž:

     C(n+1) = C(n)/2     (C(n)이 짝수일 λ•Œ)
            = 3*C(n)+1   (C(n)이 ν™€μˆ˜μΌ λ•Œ)

μ΄ˆν•­ C(1)이 μžμ—°μˆ˜λ‘œ 주어지면, 이 점화식은 μžμ—°μˆ˜λ‘œ μ΄λ£¨μ–΄μ§€λŠ” μˆ˜μ—΄μ„ μ •ν•œλ‹€.  예λ₯Ό λ“€μ–΄, C(1)=26이면, λ‹€μŒμ˜ μˆ˜μ—΄μ΄ λœλ‹€.

26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1, 4, 2, 1, 4, 2, 1, ...

이 경우, μˆ˜μ—΄μ˜ 뒷뢀뢄은 4, 2, 1 이 끝없이 λ°˜λ³΅λœλ‹€. μ‹€μ œλ‘œ C(1)이 5×260보닀 μž‘μ€ μžμ—°μˆ˜μΈ λͺ¨λ“  μˆ˜μ—΄μ€ μ–Έμ  κ°€λŠ” 4, 2, 1둜 λλ‚˜κ²Œ λœλ‹€λŠ” 것이 μ•Œλ €μ Έ μžˆλ‹€.

주어진 μž…λ ₯ C(1)에 λŒ€ν•˜μ—¬ C(n)이 처음으둜 1이 λ˜λŠ” n을 좜λ ₯ν•˜μ‹œμ˜€.

μž…λ ₯

C(1); 1 ≤ C(1) ≤ 100000

좜λ ₯

C(n)이 처음으둜 1이 λ˜λŠ” n

 

풀이

// Authored by : seondal
// Co-authored by : -

// #include <bits/stdc++.h>
#include <iostream>
#include <vector>

using namespace std;

int solution(int c1) {
    int prev = c1, next;
    for(int i=1; true; i++) {
        if(prev == 1)
            return i;
        
        if(prev%2 == 0){
            next = prev/2;
        } else {
            next = 3*prev + 1;
        }
        
        prev = next;
    }
}

int main() {
    ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
    
    int c1;
    cin >> c1;
        
    cout << solution(c1);
    
    return 0;
}

/*
 */
λ°˜μ‘ν˜•