Câu 63. Điểm giao nhau giữa 2 đoạn. – Ôn tập học kì 1 NH 2022-2023 – 11A6
Câu 63: Nhập bốn số nguyên A,B,C,D (A<B, C<D). Tính xem có bao nhiêu số nguyên thuộc đọan giao [A;B] 󠆄∩ [C;D], tức là có bao nhiêu số nguyên x thỏa mãn: A ≤ x ≤ B và C ≤ x ≤ D.
INPUT | OUTPUT | GIẢI THÍCH |
A=1; B=6 ; C=3; D=5 | 3 | [1;6] ∩ [3;5] = [3;5] Có 3 số nguyên thuộc [3;5] |
Hướng dẫn giải:
Ta thấy nếu
x ϵ [A;B] <–> A ≤ x ≤ B
x ϵ [C;D] <–> C ≤ x ≤ D
Khi đó: x ϵ [A;B] ∩ [C;D] <–> max [A;C] ≤ x ≤ min [B;D] lúc này max [A;C] > min [B;D] –> Không có số nào thỏa mãn max [A;C] ≤ x ≤ min [B;D]. Ngược lại thì có min [B;D] – max [A;C]
#Câu 63 - Điểm giao nhau giữa 2 đoạn. # Đoạn thứ nhất từ A --> B A,B,C,D=map(int,input("Nhập điểm A,B,C,D:").split()) print("Ta có đoạn thứ nhất là: [",A,";",B,"]") # Đoạn thứ hai từ C --> D print("Ta có đoạn thứ hai là: [",C,";",D,"]") print("------------------------------------") doan_AC=max(A,C) doan_BD=min(B,D) if doan_AC>doan_BD: print("Không có điểm giao giữa 2 đoạn này") else: sodiemgiao=doan_BD-doan_AC+1 print("Số điểm giao của [{};{}] và [{};{}] là: {}".format(A,B,C,D,sodiemgiao))
Bài làm của nhóm Tiên, Lãm, Đ.Huyền, Oanh, Nhi, Trinh
a,b,c,d=map(int,input().split()) if c<=b and a<=d : print(min(b,d)-max(a,c)+1) else: print(-1)
Bài làm của nhóm Bảo, Thủy, Trâm, T. Huyền
a,b,c,d=map(int,input('Nhap').split()) if a<b<c<d: print('0') elif a<=c<=b<=d: print(b-c+1) elif c<=a<=b<=d: print(b-a+1) elif a<=c<=d<=b: print(d-c+1) if c<d<a<b: print('0') elif b<=d<=a<=c: print(a-d+1)