문제 분류 수업 진도 대회 채점현황 순위 질문게시판
게임
스도쿠 타이핑 리듬 타자게임 타이핑 테트리스 타이핑 인베이더 타이핑 지뢰찾기 8192 공룡게임 타이핑 플래피버드 랭킹
로그인

8000 : 이상한 알고리즘

•시간제한: 3.000 S •메모리제한: 256 MB •제출: 15 •통과: 6 •만든사람: suakii

8000 : 이상한 알고리즘

시간 3.000s · 메모리 256MB · 제출 15 · 정답 6

문제 설명

양의 정수 $N$이 주어집니다. 아래 규칙을 반복하여 수열을 생성하는 프로그램을 작성하십시오.

• $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에 도달한다고 알려져 있는 유명한 문제입니다.
정수 나눗셈(//)을 사용하여 큰 수 계산 시 소수점 오차가 발생하지 않도록 주의하십시오.

출처/분류

NOTICE  —  BFStudy OJ 정보샘
애들아, 문제 많이 풀고 게임 잠깐 하는거지?
— 정보샘