编程要求
在下面编辑器Begin-End处补充代码。用二分法进行查找。 输入 输入包括3行,第一行为整数n,第二行包括n个从小到大的整数,以空格分隔,第三行为整数m。 输出 如果在序列中找到整数m,则输出下标,格式"%d";如果不存在,则输出None。
测试说明
样例输入: 10 1 2 4 5 6 7 8 9 10 11 10 样例输出: 8
编程要求
在右侧编辑器Begin-End处补充代码。用二分法进行查找。 输入 输入包括3行,第一行为整数n,第二行包括n个从小到大的整数,以空格分隔,第三行为整数m。 输出 如果在序列中找到整数m,则输出下标,格式"%d";如果不存在,则输出None。
测试说明
样例输入: 10 1 2 4 5 6 7 8 9 10 11 10 样例输出: 8
编程要求
在右侧编辑器Begin-End处补充代码。用二分法进行查找。 输入 输入包括3行,第一行为整数n,第二行包括n个从小到大的整数,以空格分隔,第三行为整数m。 输出 如果在序列中找到整数m,则输出下标,格式"%d";如果不存在,则输出None。
测试说明
样例输入: 10 1 2 4 5 6 7 8 9 10 11 10 样例输出: 8
#include<stdio.h>
int main()
{
/Begin/
/End*/
return 0;
}
问题尽量简洁明了,你这一个题复制三遍,我还以为多复杂得题呢
int main()
{
int n,arr[20],m;
cin>>n;
for(int i=0;i<n;i++)
cin>>arr[i];
cin>>m;
int low=0,high=n-1;
while(low<=high)
{
int mid=(low+high)/2;
if(arr[mid]>m)
high=mid;
else if(arr[mid]<m)
low=mid+1;
else
{
printf("%d",mid);
return 0;
}
}
printf("None");
return 0;
}