#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int R[5]={0,100,150,200,255};
int search(ll x,int l,int r){
if(l==r)
return l;
if(r==l+1){
if(R[l]==x)
return l;
if(R[r]==x)
return r;
}
int mid=(l+r)/2;
if(x<=R[mid])
search(x,l,mid);
//if(x>R[mid])
else
search(x,mid+1,r);
}
int main(){
cout<<search(100,1,3);
return 0;
}
如上是一段二分,为什么把第十九行改成“if(x>R[mid])”就错了呢?求助QwQ