C bài 18.D8: Dãy vô hạn
Cho một dãy số \(a = {a_1, a_2, ...}\) được xác định như sau:
- Phần tử đầu tiên \(s\) được nhập vào.
- Định nghĩa hàm \(f(n)\) như sau:
- \(f(n) = n/2\) nếu \(n\) là số chẵn.
- \(f(n) = 3n+1\) nếu \(n\) là số lẻ.
- \(a_i=s\) khi \(i=1\) và \(a_i=f(a_{i-1})\) khi \(i > 1\).
Tìm số nguyên dương nhỏ nhất \(m\) sau cho tồn tại một số nguyên \(n\) để \(a_m=a_n\)(với \(m > n\)).
INPUT FORMAT
Một dòng duy nhất gồm số nguyên dương \(s(1 \leq s \leq 100)\).
OUTPUT FORMAT
In ra số \(m\) nhỏ nhất sao cho điều kiện trên thỏa mãn.
Ví dụ 1:
Input
8
Output
5
Ví dụ 2:
Input
7
Output
18
Giải thích ví dụ mẫu
Ví dụ 1:
- Input:
8
- Giải thích: Dãy số bắt đầu từ 8 và sau 5 bước, giá trị 8 sẽ xuất hiện lại, với chỉ số m nhỏ nhất là 5.
Ví dụ 2:
- Input:
7
- Giải thích: Dãy số bắt đầu từ 7 sẽ mất nhiều bước hơn để giá trị xuất hiện lại, và chỉ số m nhỏ nhất là 18.
Lời giải bài tập này: Tại đây
Group giải đáp thắc mắc: Lập trình 24h
Fanpage CLB: CLB lập trình Full House- Việt Nam
Youtube: CLB Lập Trình Full House
Comments