
countChangeNumbers
Hải vừa nghĩ ra một phép biến đổi số, cụ thể như sau:
Với số tự nhiên n
nếu:
n
là số chẵn thì biến đổi n thànhn/2.
n
là số lẽ thì biến đổi n thành3*n+1.
Hiện tại Hải đang có hai số tự nhiên n
và k
, Hải muốn biết rằng những số nào sau khi biến đổi k
lần liên tiếp thì biến đổi thành số n
.
Kết quả là danh sách các số đó đã được sắp xếp tăng dần.
Ví dụ:
- Với
n = 10
,k = 3
, thìcountChangeNumbers(n,k) = [12,13,80].
Giải thích:
12
biến đổi3
lần:12->6->3->10.
13
biến đổi3
lần:13->40->20->10.
80
biến đổi3
lần:80->40->20->10.
- Với
n = 5
,k = 2
, thìcountChangeNumbers(n,k) = [3,20].
Giải thích: 3
biến đổi2
lần:3->10->5.
20
biến đổi2
lần:20->10->5.
Đầu vào/Đầu ra:
-
[Thời gian chạy] 0.5s với C++, 3s với Java và C#, 4s với Python, Go và JavaScript.
-
[Đầu vào] Integer n
1 ≤ n ≤ 106.
-
[Đầu vào] Integer k
0 ≤ k ≤ 25.
-
[Đầu ra] Arrays: integer
Danh sách kết quả đã được sắp xếp tăng dần.
Post Comment