※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 백준 13236번 문제인 Collatz Conjecture이다.
문제는 아래 링크를 확인하자.
https://www.acmicpc.net/problem/13236
13236번: Collatz Conjecture
The Collatz conjecture is a conjecture in mathematics named after Lothar Collatz, who first proposed it in 1937 and is still an open problem in mathematics. The sequence of numbers involved is referred to as the hailstone sequence or hailstone numbers (b
www.acmicpc.net
주어진 콜라츠 수열의 다음 항 생성 공식을 따라 1을 출력할 때까지 다음 항을 출력하는 것을 반복하는 것으로 문제를 해결하자.
콜라츠 수열이 항상 1로 수렴하는지는 해결되지 않은 문제이지만, 충분히 작은 수들에 대해서는 항상 유한한 단계 내로 1로 수렴함이 알려져있다. 무한루프에 빠지거나 할 걱정 없이 안심하고 구현하자.
아래는 제출한 소스코드이다.
#include <iostream>
#include <string>
using namespace std;
typedef long long ll;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
ll N; cin >> N;
while (N != 1) {
cout << N << ' ';
if (N & 1) N = N * 3 + 1;
else N /= 2;
}
cout << 1;
}
728x90
'BOJ' 카테고리의 다른 글
[BOJ 13234 // C++] George Boole (0) | 2022.11.27 |
---|---|
[BOJ 13228 // C++] The REAL Manhattan distance (0) | 2022.11.27 |
[BOJ 13235 // C++] 팰린드롬 (0) | 2022.11.27 |
[BOJ 13227 // C++] TicTacToe (0) | 2022.11.26 |
[BOJ 11520 // C++] And Then There Was 5 (0) | 2022.11.26 |