提交时间:2023-05-20 17:23:35
运行 ID: 74188
#include<iostream> using namespace std; int a[100005]; int bs(int left, int right, int x){ if(left > right) return -1; // 找不到,返回-1 int mid = (left + right) / 2; if(a[mid] == x) return mid; // 找到,返回下标 else if(a[mid] > x) return bs(left, mid - 1, x); // 在左半边查找 else return bs(mid + 1, right, x); // 在右半边查找 } int main(){ int n,x; cin>>n; for(int i=0;i<n;i++) cin>>a[i]; cin>>x; int makabaka=bs(0,n-1,x); if(makabaka==-1) cout<<-1; else cout<<makabaka+1; return 0; }