[Buổi 5][Củng cố vòng lặp][HW] Bài 2: Chuỗi bước Collatz
Chuỗi bước Collatz
Bối cảnh
Dãy Collatz bắt đầu từ một số nguyên dương n. Nếu n chẵn, ta chia nó cho 2; nếu n lẻ, ta thay bằng 3n + 1. Quá trình lặp lại cho tới khi giá trị trở thành 1.
Bạn cần đếm số lần biến đổi đã thực hiện. Ví dụ, từ 3: 3 → 10 → 5 → 16 → 8 → 4 → 2 → 1, có 7 bước.
Yêu cầu
Khởi tạo steps = 0. Trong khi n != 1:
- nếu
nchẵn, thaynbằngn/2; - nếu
nlẻ, thaynbằng3*n + 1; - sau mỗi lần biến đổi, tăng
stepslên 1.
In steps khi quá trình kết thúc.
Input
Dữ liệu vào được cung cấp theo định dạng sau:
Một số nguyên n.
Hãy đọc các giá trị theo đúng thứ tự và ý nghĩa đã mô tả trong đề bài.
Output
In kết quả theo đúng định dạng sau:
Số bước.
Không in thêm lời giải thích, nhãn hoặc ký tự ngoài phần kết quả được yêu cầu.
Ràng buộc
1≤n≤10^6.
Ví dụ 1
Input
1
Output
0
Giải thích ví dụ
Dãy biến đổi là 1. Có 0 lần biến đổi trước khi đạt 1, nên output là 0.
Ví dụ 2
Input
4
Output
2
Giải thích ví dụ
Dãy biến đổi là 4 → 2 → 1. Có 2 lần biến đổi trước khi đạt 1, nên output là 2.
Thông tin học tập
- Buổi: B05
- Concepts: while loop, parity check, termination condition
- Giới hạn kiến thức: B01-B05
- Time limit: 2 seconds
- Memory limit: 256 MB
- Point: 100
Comments