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. sythai (5/8)
  2. npk1605 (5/10)
  3. trungnam (4/4)
Trong 7 ngày
  1. nguyenanhvu (40/64)
  2. khieuquan (35/59)
  3. ngokhang (27/55)
Trong 30 ngày
  1. quechi (85/105)
  2. dangphong3108 (79/125)
  3. kiennhientv (79/179)
Thống kê
AC/Sub: 97887/180710
Pascal: 17121
C++: 130348
Python: 33199
Lượt xem/tải tests: 38905

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