标签:
#include <iostream> #include <algorithm> #include <cstdio> using namespace std; int main() { int n,k; while(scanf("%d%d",&n,&k)!=-1) { int r=1,l=n,mid,sum=0; while(r<=l) { sum++; mid=(r+l)/2; if(mid==k) {printf("%d\n",sum);break;} if(mid<k) r=mid+1; else l=mid-1; } } return 0; }
我们现在都知道二分查找的主体是一个while循环,在每次循环里面进行询问,从而决定是找到了数据停止循环还是改变查找区间的范围。现在就是考验大家是否理解了原理的时候了! 运用二分查找在序列{1,2,3,……,n}中找到k需要循环多少次?
输入多组数据, 每组输入两个整数n和k,占一行(0<= k <= n)。
对每组输入,输出在序列{1,2,3,……,n}中找到k的循环次数。
5 2 5 1 10 3
3 2 3
标签:
原文地址:http://www.cnblogs.com/nefu929831238/p/5285995.html