Cho một dãy số nguyên \(A\) gồm \(n\) số nguyên không âm \(A = \{ a_{1},\ a_{2},\ \ldots,\ a_{n}\}\ (2 \leq n \leq 20)\). Với mỗi lần lặp, bạn thay đổi dãy này thành một dãy mới theo cách: phần tử thứ \(k\ (1 \leq k < n)\) trong dãy mới có giá trị bằng \(\left| a_{k} - a_{k + 1} \right|\) (giá trị tuyệt đối của \(a_{k} - a_{k + 1}\)), phần tử cuối cùng sẽ là \(\left| a_{n} - a_{1} \right|\) (giá trị tuyệt đối của \(a_{n} - a_{1}\)). Quá trình lặp sẽ dừng lại khi các phần tử của dãy bằng nhau.
Yêu cầu: Bạn hãy viết chương trình xác định số lần lặp của dãy số đã cho.
Ví dụ: Với \(n = 4\), dãy số\(\ A = \{\ 0,\ 2,\ 5,\ 11\}\) ta sẽ có các lần lặp là:
Lần lặp | Dãy số |
---|---|
1 | 2, 3, 6, 11 |
2 | 1, 3, 5, 9 |
3 | 2, 2, 4, 8 |
4 | 0, 2, 4, 6 |
5 | 2, 2, 2, 6 |
6 | 0, 0, 4, 4 |
7 | 0, 4, 0, 4 |
8 | 4, 4, 4, 4 |
Tổng cộng 8 lần lặp.
Dữ liệu:
Dòng 1: chứa số nguyên dương \(n\);
Dòng 2: chứa \(n\) số nguyên \(a_{1},\ a_{2},\ \ldots,\ a_{n}\) theo đúng thứ tự cách nhau ít nhất một dấu cách.
Kết quả: Xuất ra màn hình một số nguyên dương là số lần lặp tương ứng nếu dãy không bằng nhau được sau 1000 lần lặp thì ghi số -1.
Ví dụ:
Input | Output |
---|---|
4 0 2 5 11 |
8 |
5 0 2 5 11 3 |
-1 |
Code tích cực |
---|
Trong 24h |
Trong 7 ngày |
|
Trong 30 ngày |
|
Thống kê |
---|
AC/Sub: 97887/180710 Pascal: 17121 C++: 130348 Python: 33199 Lượt xem/tải tests: 38905 |