khoahoc.vietjack.com
Xin chào! Vào học

Câu hỏi:

11/07/2024 888 Lưu

Viết thêm một chương trình cho công việc bổ sung 4 như sau: Cần in ra danh sách 1⁄3 số mặt hàng có doanh số thấp nhất trong ngày.

Quảng cáo

Trả lời:

verified Giải bởi Vietjack

def in_danh_sach_1_3_so_mat_hang_thap_nhat(s,p):

    # Sắp xếp danh sách mặt hàng theo doanh số tăng dần

    p.sort(key=lambda x: x[s])

    # Tính số lượng mặt hàng cần in (1/3 tổng số mặt hàng)

    so_luong_can_in = len(p) // 3

    # In ra danh sách 1/3 số mặt hàng có doanh số thấp nhất

    print("Danh sách 1/3 số mặt hàng có doanh số thấp nhất:")

    for i in range(so_luong_can_in):

        print(f"{i+1}. Mặt hàng {p[i][0]} - Doanh s: {p[i][p]}")

Đang tải chế độ Học...

Hot: 1000+ đề thi giữa kì 1 lớp 1-12 đầy đủ các môn (Update 2026) (chỉ từ 60k). Tải ngay

ĐẶC QUYỀN VIP

Đăng ký VIP để học và luyện thi không giới hạn

Trọn bộ quyền lợi trên Vietjack, trong một tài khoản.

  • Phòng luyện thi cấp tốc: ĐGNL - ĐGTD, Tốt nghiệp THPT, Ôn vào 10, Ôn vào 6, Ôn Giữa kì/Cuối kì
  • Hơn 200K đề thi thử, đề minh hoạ, chính thức các năm
  • Với 3tr+ câu hỏi theo các mức độ Nhận biết, Thông hiểu, Vận dụng
  • Tải xuống đề thi [DOCX] với đầy đủ đáp án
  • Xem hàng ngàn bài giảng đính kèm củng cố thêm kiến thức
  • Bao gồm tất cả các bậc từ Tiểu học đến Đại học
  • Chặn hiển thị quảng cáo tăng khả năng tập trung ôn luyện
  • Đăng ký ngay

CÂU HỎI HOT CÙNG CHỦ ĐỀ

Lời giải

Chương trình sử dụng thuật toán tìm kiếm nhị phân để tìm mặt hàng có doanh số nhỏ hơn K nhưng gần với K nhất trong danh sách mặt hàng đã được sắp xếp theo thứ tự tăng dần của doanh số.

def find_nearest_item(arr, K):

    # Sắp xếp danh sách mặt hàng theo thứ tự tăng dần của doanh số

    arr.sort()

    low, high = 0, len(arr) - 1

    result = None

    while low <= high:

        mid = (low + high) // 2 # Tính giá trị trung bình mid của low và high

        if arr[mid] < K:

            # Nếu giá trị doanh số của mặt hàng ở vị trí mid nhỏ hơn K

            # Đặt low = mid + 1 để tìm phần tử lớn hơn K

            low = mid + 1

        elif arr[mid] > K:

            # Nếu giá trị doanh số của mặt hàng ở vị trí mid lớn hơn K

            # Đặt high = mid - 1 để tìm phần tử nhỏ hơn K

            high = mid – 1

else:

            # Nếu giá trị doanh số của mặt hàng ở vị trí mid bằng K

            # Trả về mid làm kết quả

            result = mid

            break

        # Cập nhật giá trị gần K nhất

        if result is None or abs(arr[mid] - K) < abs(arr[result] - K):

            result = mid

    return arr[result]

# Example usage

arr = [10, 20, 30, 40, 50, 60, 70, 80, 90]

K = 45

nearest_item = find_nearest_item(arr, K)

print("Mặt hàng có doanh số nhỏ hơn K nhưng gần với K nhất là:", nearest_item)

Lời giải

Chương trình trên được thiết kế có 3 mô đun

Lời giải

Bạn cần đăng ký gói VIP ( giá chỉ từ 250K ) để làm bài, xem đáp án và lời giải chi tiết không giới hạn.

Nâng cấp VIP

Lời giải

Bạn cần đăng ký gói VIP ( giá chỉ từ 250K ) để làm bài, xem đáp án và lời giải chi tiết không giới hạn.

Nâng cấp VIP

Lời giải

Bạn cần đăng ký gói VIP ( giá chỉ từ 250K ) để làm bài, xem đáp án và lời giải chi tiết không giới hạn.

Nâng cấp VIP

Lời giải

Bạn cần đăng ký gói VIP ( giá chỉ từ 250K ) để làm bài, xem đáp án và lời giải chi tiết không giới hạn.

Nâng cấp VIP