Xét bài toán Một hàng dọc gồm n bạn học sinh xếp theo thứ tự

Câu Fcs29 trang 55 SBT Tin học 11: Xét bài toán: Một hàng dọc gồm n bạn học sinh xếp theo thứ tự từ thấp đến cao, bạn thứ i (0

Dữ liệu: Nhập từ thiết bị vào chuẩn:

• Dòng đầu tiên chứa một dãy số nguyên dương hạ, h,,,h với đảm bảo h

• Dòng thứ hai chứa một số nguyên dương d.

Kết quả: Hiển thị ở thiết bị ra chuẩn một số nguyên là số lượng cặp chỉ số (i, j) để h − h = d (0

Xét bài toán Một hàng dọc gồm n bạn học sinh xếp theo thứ tự

Lời giải:

Với mỗi chỉ số j, tồn tại tối đa một chỉ số i để h[j] – h[i] = d. Điều kiện h[j] - h[i] = d tương đương với h[i] = h[j] – d. Đặt h[j] – d = x, em có thê quy về bài toán tìm kiếm giá trị x trên dãy h. Sử dụng một biến kiểu boolean để ghi nhận kết quả tìm kiếm cho mỗi chỉ số j, em có thể tính tổng số lượng chỉ số j mà tồn tại i thoả mãn h[j] – h[i] = d, cũng chính là số cặp cần tìm.

Xét bài toán Một hàng dọc gồm n bạn học sinh xếp theo thứ tự

Lời giải SBT Tin 11 Bài 7: Lập trình giải bài toán tìm kiếm hay khác:

Xem thêm các bài giải sách bài tập Tin học lớp 11 Cánh diều hay, chi tiết khác:

Xem thêm các tài liệu học tốt lớp 11 hay khác:


Giải bài tập lớp 11 Cánh diều khác