8000 : 이상한 알고리즘
•시간제한: 3.000 S
•메모리제한: 256 MB
•제출: 15
•통과: 6
•만든사람: suakii
문제 설명
양의 정수 $N$이 주어집니다. 아래 규칙을 반복하여 수열을 생성하는 프로그램을 작성하십시오.
• $N$이 짝수이면: $N = N / 2$
• $N$이 홀수이면: $N = 3N + 1$
$N = 1$이 될 때까지의 과정에서 거쳐간 모든 수(시작 값 $N$ 포함)를 순서대로 출력합니다.
[제약 조건]
• $1 \le N \le 10^6$
• $N$이 짝수이면: $N = N / 2$
• $N$이 홀수이면: $N = 3N + 1$
$N = 1$이 될 때까지의 과정에서 거쳐간 모든 수(시작 값 $N$ 포함)를 순서대로 출력합니다.
[제약 조건]
• $1 \le N \le 10^6$
입력 설명
첫째 줄에 정수 $N$이 주어집니다.
출력 설명
$N = 1$이 될 때까지 거쳐간 모든 수를 공백으로 구분하여 한 줄에 출력합니다.
입력 예시
COPY
복사되었습니다!
복사되었습니다!
3
출력 예시
COPY
복사되었습니다!
복사되었습니다!
3 10 5 16 8 4 2 1
도움
콜라츠 추측(Collatz Conjecture): 어떤 양의 정수에서 시작해도 유한 번의 과정 안에 반드시 1에 도달한다고 알려져 있는 유명한 문제입니다.
정수 나눗셈(
정수 나눗셈(
//)을 사용하여 큰 수 계산 시 소수점 오차가 발생하지 않도록 주의하십시오.