Hãy nhập câu hỏi của bạn vào đây, nếu là tài khoản VIP, bạn sẽ được ưu tiên trả lời.
Đáp án C bởi vì:
- Khi chạy đến hết danh sách thì bắt buộc phải dừng vì không còn giá trị nào trong danh sách để lấy mà kiểm tra nữa.
- Khi kiểm tra xong đối tượng mà ta cần tìm thì tất nhiên là ta sẽ dừng lại vòng lặp vì có được đáp án rồi, đó được gọi là "điều kiện để dừng vòng lặp".
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
ll a[]={10,2,5,12,20,6,8,15,18}; //mảng đã cho
ll n=sizeof(a)/sizeof(a[0]); //độ dài mảng
sort(a,a+n); //sắp xếp mảng
//Thuật toán tìm kiếm nhị phân
ll l=0, r=n-1;
while(l<=r) {
ll mid=(l+r)/2; //Tìm phần tử giữa left và right
if(a[mid]<15) l=mid+1; //Vì từ đoạn [0,mid] thì phần tử nhỏ hơn 15 nên ta duyệt từ khoảng (mid,r]
else r=mid-1; //vì thấy nên rút r để thu hẹp phạm vi
}
cout << l+1; //in ra kq (vì bắt đầu từ 0 đến n-1 nên phải tăng thêm để ra vị trí đúng)
}
(Bạn có thể dựa vào code mình để rút ra các bước)
Chúc bạn học tốt!
Thao tác lặp đi lặp lại là B2. Sẽ lặp đi lặp lại khi chưa tìm được kết quả và chưa xét hết dãy số. Điều kiện để lặp lại là khi chưa tìm thấy kết quả.