题目描述
设有N个数已经按从大到小的顺序排列,现在输入X,判断它是否在这N个数中,如果存在则输出:“YES” 否则输出“NO”。
输入
第一行输入十个数
第二行输入你要找的数
输出
找到输出YES
找不到输出NO
样例输入
1 2 3 4 5 6 7 8 9 10
3
样例输出
YES
#include <iostream>
using
namespace
std;
int
a[10];
int
find (
int
x)
{
int
left=0,light=9,mid=(left+light)/2;
while
(mid>=left&&mid<=light)
{
if
(a[mid]==x)
return
1;
else
if
(a[mid]>x) {light=mid-1;mid=(left+light)/2;}
else
{left=mid+1;mid=(left+light)/2;}
}
return
0;
}
int
main()
{
int
x;
for
(
int
i=0;i<10;i++)
cin>>a[i];cin>>x;
if
(find(x)) cout<<
"YES"
<<endl;
else
cout<<
"NO"
<<endl;
return
0;
}