Điểm:
800 (p)
Thời gian:
1.0s
Bộ nhớ:
512M
Input:
bàn phím
Output:
màn hình
Xét thuật toán sau nhận đầu vào là một số nguyên dương \(n\). Nếu \(n\) chẵn, thuật toán sẽ chia nó cho hai, và nếu \(n\) lẻ, thuật toán nhân ba nó lên rồi cộng thêm một đơn vị. Thuật toán trên lặp lại điều này cho tới khi \(n\) bằng \(1\). Ví dụ, dãy số thực hiện với \(n=3\) là:
\[3 \rightarrow 10 \rightarrow 5 \rightarrow 16 \rightarrow 8 \rightarrow 4 \rightarrow 2 \rightarrow 1\]
Việc của bạn là hãy mô phỏng lại cách hoạt động của thuật toán với một giá trị \(n\) cho trước.
Input
- Một dòng duy nhất chứa số \(n\).
Output
- In ra một dòng lần lượt chứa từng giá trị của \(n\) trong khi chạy thuật toán.
Constraints
- \(1 \le n \le 10^6\)
Example
Sample input
3
Sample output
3 10 5 16 8 4 2 1
Bình luận
n = int(input())
if n>=1:
print(n)
if n<1:
n = int(input())
while n>1:
if n%2==0:
print(n//2,end=" ")
n = n//2
else:
print(n3+1,end=" ")
n = n3+1
7 bình luận nữa