nefu 899这也是裸的找

Posted 邻家那小孩儿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nefu 899这也是裸的找相关的知识,希望对你有一定的参考价值。

#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这也是裸的找的主要内容,如果未能解决你的问题,请参考以下文章

常用代码技巧--新手区(不定期更新)

多重背包并判断能否装满(附01完全背包思想)

图的联通分量个数统计(判断图是否联通)

蓝桥 历届试题 合根植物

找到我的自定义代码片段 Xcode 6?

poj 1014 Dividing