zoukankan      html  css  js  c++  java
  • hdu2178猜数字(二分法!!!!)

    ---恢复内容开始---

    猜数字

    Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
    Total Submission(s): 3792    Accepted Submission(s): 2704


    Problem Description
    A有1数m,B来猜.B每猜一次,A就说"太大","太小"或"对了" 。
    问B猜n次可以猜到的最大数。
     
    Input
    第1行是整数T,表示有T组数据,下面有T行
    每行一个整数n (1 ≤ n ≤ 30)
     
    Output
    猜n次可以猜到的最大数
     
    Sample Input
    2 1 3
     
    Sample Output
    1 7
     
     
     1 #include<stdio.h>
     2 #include<math.h>
     3 int main()
     4 {
     5     int t,n;
     6     scanf("%d",&t);
     7     while(t--)
     8     {
     9         scanf("%d",&n);
    10         int ans=0;
    11         ans=pow(2,n)-1;
    12         printf("%d
    ",ans);
    13     }
    14     return 0;
    15 }
    16 //解题报告:
    17 /*
    18 一开始也想到了二分,因为快速查找,二分法是熟读很快的方法。
    19 但是没有想到这样用:
    20 如果在一定区间里去查找一个数,如果区间很大,那么用二分法
    21 每次可以将范围缩小一半;那么反过来,如果要查找一个固定的数,
    22 用二分的思想,让范围一直往右靠(右端不变,左端加1),就能找到足够大的数。
    23  
    24 假设要查找的最大数是m,
    25 则,第一次查找,(m+1)/2=m;得m=1;
    26 第二次查找,((m+1)/2+1+m)/2=m;得m=3;
    27 第三次查找,(((m+1)/2+1+m)/2+1+m)=m;得m=7;
    28 归纳:m=2^n-1; 
    29 */ 

    ---恢复内容结束---

  • 相关阅读:
    设计模式
    python高亮显示输出
    数据库入门3 数据库设计
    分支循环相关
    软件目录结构规范
    数据库入门2 数据库基础
    三级菜单
    字符串相关问题
    登录接口
    购物车
  • 原文地址:https://www.cnblogs.com/qianyanwanyu--/p/4360099.html
Copyright © 2011-2022 走看看