二分

fushuxuan1發表於2024-11-16
#include <bits/stdc++.h>
using namespace std;
int main(){
	int a[8];
	int t,L=0,R=4,M=0;
	cin>>t;
	for(int i=0;i<8;i++){
		cin>>a[i];
	}
	int x=1000;
	// 1 2 2 3 4
	for(int i=0;L<=R;i++){
		M=(L+R)/2;
		if(a[M]>t){
			R=M-1;
		}else{
			L=M+1;
		} 
		
		if(a[R]<=t){
			cout<<R;
			return 0;
		}
	}
	cout<<"-1";
	
	
	
	
	return 0;
}

  

#include <bits/stdc++.h>
using namespace std;
int main(){
	int a[10];
	int t,L=0,R=4,M=0;
	cin>>t;
	for(int i=0;i<10;i++){
		cin>>a[i];
	}
	int x=1000;
	// 1 2 2 3 4
	for(int i=0;L<=R;i++){
		M=(L+R)/2;
		if(a[M]>t){
			R=M-1;
		}else{
			L=M+1;
		} 
		if(a[M]>=t){
			cout<<M;
			return 0;
		}
	}
	cout<<"-1";
	
	
	
	
	return 0;
}

  

#include <bits/stdc++.h>
using namespace std;
int main(){
	int a[5];
	int t,L=0,R=4,M=0;
	cin>>t;
	for(int i=0;i<5;i++){
		cin>>a[i];
	}
	int x=1000;
	// 1 2 2 3 4
	for(int i=0;L<=R;i++){
		M=(L+R)/2;
		if(a[M]>t){
			R=M-1;
		}else{
			L=M+1;
		} 
		if(a[R]==t){
			cout<<R;
			return 0;
		}
	}
	cout<<"-1";
	
	
	
	
	return 0;
}

  

#include <bits/stdc++.h>
using namespace std;
int main(){
	int a[5];
	int t,L=0,R=4,M=0;
	cin>>t;
	for(int i=0;i<5;i++){
		cin>>a[i];
	}
	int x=1000;
	// 1 2 2 3 4
	for(int i=0;L<=R;i++){
		M=(L+R)/2;
		if(a[M]>=t){
			R=M-1;
		}else{
			L=M+1;
		} 
		if(a[L]==t){
			cout<<L;
			return 0;
		}
	}
	cout<<"-1";
	
	
	
	
	return 0;
}

  

#include <bits/stdc++.h>
using namespace std;
int main(){
	int a[5];
	int t,L=0,R=4,M=0;
	cin>>t;
	for(int i=0;i<5;i++){
		cin>>a[i];
	}
	int x=1000;
	for(int i=0;L<=R;i++){
		M=(L+R)/2;
		if(a[M]==t){
			if(x>M){
				x=M;
				R=M-1;
			}
			
			cout<<M;
			return 0;
		}else if(a[M]<t){
			L=M+1;
		}else if(a[M]>t){
			R=M-1;
		}
	}
	cout<<"-1";
	
	
	
	
	return 0;
}