任务描述
题目描述:将n
个从小到大排序的整数(n<1000000
)从1~n
进行编号,并一个待查找的整数m
,请使用二分法进行查找。
相关知识(略)
编程要求
根据提示,在右侧编辑器Begin-End
处补充代码。
输入
输入包括3
行,第一行为整数n
,第二行包括n
个整数,以空格分隔,第三行为整数m
。
输出
如果能够在序列中找到整数m
,则输出编号(如果存在多个编号,返回编号最小的),如果不存在,则输出None
。
测试说明
样例输入:
10
1 2 4 5 6 7 8 9 10 11
10
样例输出:
9
源代码如下:
代码语言:javascript复制#include<stdio.h>
#define m 1000000
int main(void)
{
int a[m],n,b;
scanf("%d",&b);
for(n=0;n<b;n ){
scanf("%d",&a[n]);
}
int find;
scanf("%d",&find);
if(b==1){
if(find==a[0]){
printf("%d",1);
}
}
for(n=0;n<(b/2);n ) {
if (find == a[n]) {
printf("%d", n 1);
break;
}
}
if(find!=a[n]) {
for (n = (b / 2); n < b; n ) {
if (find == a[n]) {
printf("%d", n 1);
break;
}
}
}
if(find!=a[n]){
printf("None");
}
return 0;
}
运行结果如下: