码迷,mamicode.com
首页 > 其他好文 > 详细

nefu 899这也是裸的找

时间:2016-03-17 09:34:43      阅读:212      评论:0      收藏:0      [点我收藏+]

标签:

#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需要循环多少次?

Input

输入多组数据, 每组输入两个整数n和k,占一行(0<= k <= n)。

Output

对每组输入,输出在序列{1,2,3,……,n}中找到k的循环次数。

Sample Input

5 2
5 1
10 3

Sample Output

3
2
3

nefu 899这也是裸的找

标签:

原文地址:http://www.cnblogs.com/nefu929831238/p/5285995.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!