BeileySok


私信TA

用户名:H2030819055

访问量:1405

签 名:

等  级
排  名 975
经  验 3259
参赛次数 16
文章发表 6
年  龄 20
在职情况 学生
学  校 贺州学院
专  业 软件工程

  自我简介:

TA的其他文章

二分法查找
浏览:264
大二上学期代码
浏览:425
第H道题目的
浏览:70

解题思路:

注意事项:

参考代码:

#include<bits/stdc++.h>

using namespace std;

int a[1000005];

int search(int a[],int n, int x)

{

int L,R,mid;

L=0;R=n-1;

while(L<=R)

{

mid=(L+R)/2;

if(x>a[mid]) L=mid+1;

else R=mid-1;

}

if(R<0) return a[0];

    if(L>=n) return a[n-1]; 

    if(x-a[L-1]<=a[L]-x) return a[L-1];

    return a[L];

}


int main()

{

int n,m;

int x;

scanf("%d",&n);

for(int i=0;i<n;i++)

scanf("%d",&a[i]);

scanf("%d",&m);

while(m--){

scanf("%d",&x);

int y=search(a,n,x);

printf("%d\n",y);

}

return 0;

}


 

0.0分

3 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答

代码解释器

  评论区