Môn Tin họcQuản lý học tập Tin học

Soi lỗi đếm cặp giảm giá cổ phiếu ABC trên VietStock

Lớp 11Lập trìnhpythonGiải quyết vấn đề với máy tínhVận dụng cao

Thang điểm 10 · 5 test case chấm tự động · 3 tiêu chí chấm

Ứng dụng VietStock ghi lại giá đóng cửa (đơn vị: nghìn đồng/cổ phiếu) của mã cổ phiếu ABC tại n phiên giao dịch liên tiếp, đánh số phiên từ 0 đến n-1 theo đúng thứ tự thời gian. Một cặp phiên (i, j) với i < j được gọi là cặp giảm giá nếu giá phiên i lớn hơn giá phiên j (tức giá đã đi xuống theo thời gian).

Một bạn thực tập đã áp dụng phương pháp làm mịn dần để viết hàm đếm số cặp giảm giá, nhưng khi chạy thử thì kết quả luôn sai so với đếm tay. Đoạn code của bạn ấy như sau:

  • def DemCapGiam(A):
  •     n = len(A)
  •     count = 0
  •     for i in range(n-1):
  •         for j in range(1, n):
  •             if A[i] > A[j]:
  •                 count = count + 1
  •     return count

Em hãy tìm ra dòng lệnh bị sai (so với thiết kế đúng ở Bước 2 của phương pháp làm mịn dần đã học), sửa lại và viết chương trình hoàn chỉnh đọc dữ liệu, in ra số cặp giảm giá đúng.

Định dạng vào: dòng 1 là số nguyên n; dòng 2 gồm n số nguyên là giá đóng phiên (nghìn đồng), cách nhau bởi khoảng trắng.

Định dạng ra: in ra một số nguyên duy nhất là số cặp giảm giá đúng.

InputOutputGiải thích
4
10 8 9 5
5Các cặp giảm giá: (10,8),(10,9),(10,5),(8,5),(9,5)
3
5 5 5
0Giá bằng nhau không tính là giảm giá
#đếm cặp nghịch đảo#làm mịn dần#lỗi off-by-one#vòng lặp lồng nhau#category:tu_duy_phan_bien#difficulty:analyzing

Giáo viên giao bài này cho lớp, học sinh nộp bài trực tuyến và được chấm tự động.

Giáo viên đăng nhập để giao bài