문제
원문 보기 (영어)n에서 시작합니다. n이 짝수라면 2로 나누고, 홀수라면 3을 곱한 뒤 1을 더합니다. 값이 1이 될 때까지 이 과정을 반복합니다. 시작 값과 마지막 1 모두를 답에 포함하세요.
collatz_sequence(n)을 구현하세요.
입력
n: 양의 정수 시작값입니다.
출력
전체 수열을 순서대로 반환하세요.
제약 조건
1 ≤ n ≤ 10,000. 이 범위의 입력은 모두 해당 규칙으로 1에 도달합니다. 수열의 모든 값은 부호 있는 64비트 정수 범위에 포함됩니다.
예시
예시 1
입력:
n = 6
예상 출력:
expected = [6, 3, 10, 5, 16, 8, 4, 2, 1]
입력:
long long n = 6;
예상 출력:
std::vector<long long> expected = {6, 3, 10, 5, 16, 8, 4, 2, 1};
입력:
long n = 6;
예상 출력:
long[] expected = new long[] {6, 3, 10, 5, 16, 8, 4, 2, 1};
설명
6은 짝수이므로 3이 됩니다. 그 다음 3은 10이 됩니다. 1이 될 때까지 계속 규칙을 적용하세요.
예시 2
입력:
n = 1
예상 출력:
expected = [1]
입력:
long long n = 1;
예상 출력:
std::vector<long long> expected = {1};
입력:
long n = 1;
예상 출력:
long[] expected = new long[] {1};
설명
시작 값이 이미 1이므로 변환이 필요하지 않습니다.
참고 자료
이 문제는 CodeUtility에 맞게 수정되었습니다. 위의 설명과 제한 조건을 따르세요.