LẦN LẶP

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

Bạn cần đăng nhập để nộp bài

hpcode.edu.vn
Code tích cực
Trong 24h
  1. nakato (8/16)
  2. tribinh (6/9)
  3. sythai (4/6)
Trong 7 ngày
  1. bao_khanh (61/90)
  2. nakato (46/115)
  3. phamnhi (26/104)
Trong 30 ngày
  1. phamnhi (74/259)
  2. kiennhientv (72/163)
  3. npk1605 (68/96)
Thống kê
AC/Sub: 97887/180710
Pascal: 17121
C++: 130348
Python: 33199
Lượt xem/tải tests: 39159

Lưu Hải Phong - 2020
[email protected]