二分查找
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int ab[1000];
//二分查找
int find(int l,int r,int s)
{
while(l<=r)
{
int mid=(l+r)>>1;
if(ab[mid]==s) return 1;
if(ab[mid]>s) r=mid-1; //注意这里不能写r=mid..否则死循环。
else l=mid+1;
}
return 0;
}
int main( )
{
int i;
for(i=1;i<=60;i++)
ab[i]=2*i*i+4*i+2;
if(find(1,60,18))
printf("YES\n");
else
printf("NO\n");
system("pause");
return 0;
}
posted on 2011-05-03 00:46 more think, more gains 阅读(177) 评论(0) 收藏 举报
浙公网安备 33010602011771号