#35202: C++解題報告


1365536-1@g.puiching.edu.mo (kingston1234)

學校 : 不指定學校
編號 : 210222
來源 : [60.246.228.36]
最後登入時間 :
2024-10-26 20:50:12
d732. 二分搜尋法 | From: [202.86.128.220] | 發表日期 : 2023-05-16 12:54

 

#include<iostream>
using namespace std;
int main(){
	int n,k;
	cin>>n>>k;
	int a[n];
	for (int i=0; i<n; i++) cin>>a[i];
	for (int i=0; i<k; i++){
		int x;
		cin>>x;
		int low = 0, high = n - 1, ans = 0;
		while (low<=high){
			int mid = (low+high)/2;
			if (a[mid]==x){
				ans = mid+1;
				break;
			}
			else if (a[mid]<x){
				low = mid+1;
			}
			else{
				high = mid-1;
			}
		}
		cout<<ans<<endl;
	}
	return 0;
}
以上程式碼純粹參考
 
ZeroJudge Forum