λ°μν
https://www.acmicpc.net/problem/14920
λ¬Έμ
λ€μμ μ νμμ μν΄ μ ν΄μ§λ μμ΄ 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;
}
/*
*/
λ°μν
'π¦ Chango > π« First Solve at School' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[BOJ B4][C++] λ°±μ€ 13985λ²: Equality (0) | 2022.12.30 |
---|---|
[BOJ S4][C++] λ°±μ€ 14495λ²: νΌλ³΄λμΉ λΉμ€λ¬΄λ¦¬ν μμ΄ (0) | 2022.12.29 |
[BOJ B2][C++] λ°±μ€ 2153λ²: μμ λ¨μ΄ (0) | 2022.12.13 |
[BOJ B2][C++] λ°±μ€ 1773λ²: νμ£½μΌ (0) | 2022.12.11 |
[BOJ B3][C++] λ°±μ€ 2863λ²: μ΄κ² λΆμ? (0) | 2022.12.10 |