sdut2039

来源:互联网 发布:盘古大观知乎 编辑:程序博客网 时间:2024/05/11 19:25

题目描述

 在一个递增的序列里,查找元素是否存在,若存在输出YES,不存在输出NO.

输入

 本题多组数据,首先输入一个数字n,然后输入n个数,数据保证数列递增,然后再输入一个查找数字。

输出

 若存在输出YES,不存在输出NO.

示例输入

41 3 5 83

示例输出

YES


代码:
#include<stdio.h>main(){int n;int a[100000];int x;int i;int f;int low,high,mid;while(scanf("%d",&n)!=EOF){f=0;for(i=0;i<n;i++){scanf("%d",&a[i]);}scanf("%d",&x); low=0;mid=n/2;high=n-1;while(low<=high){if(x==a[mid]){f=1;break;}else{if(x>a[mid]){low=mid+1;mid=(low+high)/2;}else{high=mid-1;mid=(low+high)/2;}}}if(f){printf("YES\n");}else{printf("NO\n");}}} 





0 0
原创粉丝点击