原题链接:
https://www.acwing.com/blog/content/30368/
感谢Pobz题目的分享!
代码:
#include<bits/stdc++.h>
using namespace std;
const int N=1e4+10;
int a[N];
int main()
{
int n;
cin>>n;
for(int i=0;i<n;i++)
cin>>a[i];
int target; cin>>target;
int low=0,high=n-1;
int ans=0; //统计二分次数
while(low<high)
{
ans++;
int mid=(low+high)/2;
if(target == a[mid])
break;
if(target < a[mid])
high=mid-1;
else
low=mid+1;
}
cout<<ans;
return 0;
}