这个题目很简单,但是要注意细节和对题目的理解,一开始我把guess函数的作用理解错了,第一版代码长这样:

 int guessNumber(int n)
{
int low = ;
int high = n; while(low < high)
{
int mid = (high + low) / ;
int g = guess(mid);
if(g == )
return mid;
else if(g > )
low = mid + ;
else
high = mid - ;
} return low; }

在重新读了几次题目之后,第二版代码长这样:

 int guessNumber(int n)
{
int low = ;
int high = n; while(low < high)
{
int mid = (high + low) / ;
int g = guess(mid);
if(g == )
return mid;
else if(g < )
low = mid + ;
else
high = mid - ;
} return low; }

但是还是不能正确通过,这很尴尬:查了半天发现是上面标注的那段代码有问题,我一直以为把代码写成最简单的数学表达式是一个好选择,但是这里显然不是这样:因为这样当high和low都比较大时,这是会导致溢出!所以有了第三个版本的代码:

int guessNumber(int n)
{
int low = ;
int high = n; while(low < high)
{
int mid = low + (high - low) / ;
int g = guess(mid);
if(g == )
return mid;
else if(g < )
low = mid + ;
else
high = mid - ;
}
return low;
}

最新文章

  1. 关于csrss.exe和winlogon.exe进程多、占用CPU高的解决办法,有人在暴力破解
  2. 带有“非简单参数”的函数为什么不能包含 &quot;use strict&quot; 指令
  3. espcms简约版的表单,提示页,搜索列表页
  4. Linux下随机密码生成器
  5. HTML之电话: 邮箱: 网址
  6. Atitit  五种IO模型attilax总结&#160;blocking和non-blocking&#160;synchronous IO和asynchronous I
  7. php随机生成指定长度的字符串 可以固定数字 字母 混合
  8. Tiny Rss Reader - 迷你RSS阅读器
  9. .net控件事件中的Sender
  10. POJ 1584 A Round Peg in a Ground Hole(判断凸多边形,点到线段距离,点在多边形内)
  11. django开发框架-view & template
  12. PHP源代码分析(第一章):Zend HashTable详解【转】
  13. &amp;lt;%%&amp;gt;创建内联代码块(表达)
  14. C#中的ArrayList
  15. c++:自己动手实现线程安全的c++单例类
  16. Unity配置安卓开发环境
  17. MemSQL与MySQL不兼容问题总结
  18. hdu2642二维树状数组单点更新
  19. 记时,耗时,Stopwatch
  20. java集合框架03——ArrayList和源码分析

热门文章

  1. 【BZOJ3343】教主的魔法 分块+二分
  2. 【异常】java.lang.LinkageError: loader constraints violated
  3. BZOJ4532: [BeiJing2014 WinterCamp] 珠链
  4. js-小效果-瀑布流
  5. 转 Datatables中文API——基本参数
  6. nodejs怎么同步从一个数据库查询函数中返回一个值
  7. webservice的Axis2入门教程java版
  8. Qt Load and Save Image Dialog 加载图片对话框
  9. Odoo Xml Datetime 类型显示为 Date类型
  10. firefox如何禁用JavaScript