蒟蒻提问
  • 板块学术版
  • 楼主MeowScore
  • 当前回复17
  • 已保存回复17
  • 发布时间2021/6/29 21:29
  • 上次更新2023/11/4 21:18:43
查看原帖
蒟蒻提问
140360
MeowScore楼主2021/6/29 21:29
#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

2021/6/29 21:29
加载中...