Đề bài
Xem bản dịchStart with n. If it is even, divide it by 2; if it is odd, multiply it by 3 and add 1. Repeat until the value is 1. Include both the starting value and the final 1 in your answer.
Implement collatz_sequence(n).
Input
n: The positive starting integer.
Output
Return the complete sequence in order.
Ràng buộc
1 ≤ n ≤ 10,000. Inputs in this range reach 1 under this rule; all sequence values fit a signed 64-bit integer.
Ví dụ
Đầu vào:
n = 6
Kết quả mong đợi:
expected = [6, 3, 10, 5, 16, 8, 4, 2, 1]
Đầu vào:
long long n = 6;
Kết quả mong đợi:
std::vector<long long> expected = {6, 3, 10, 5, 16, 8, 4, 2, 1};
Đầu vào:
long n = 6;
Kết quả mong đợi:
long[] expected = new long[] {6, 3, 10, 5, 16, 8, 4, 2, 1};
Giải thích
6 is even, so it becomes 3. Then 3 becomes 10. Continue applying the rule until 1.
Đầu vào:
n = 1
Kết quả mong đợi:
expected = [1]
Đầu vào:
long long n = 1;
Kết quả mong đợi:
std::vector<long long> expected = {1};
Đầu vào:
long n = 1;
Kết quả mong đợi:
long[] expected = new long[] {1};
Giải thích
The starting value is already 1, so no transformations are needed.
Tham khảo
Thử thách này đã được điều chỉnh cho CodeUtility. Hãy làm theo đề bài và các ràng buộc ở trên.