牛牛和妞妞正在玩一个猜数游戏,妞妞心里想两个不相等的正数,把这两个正数的和y告诉牛牛。
妞妞声称这两个数都不超过x,让牛牛猜这两个数是多少。
牛牛每猜一次,妞妞会告诉他猜对了还是猜错了,猜对了就停止游戏,猜错了就直到牛牛猜对为止。妞妞为了加大难度,有时会误报x的大小,如果牛牛可以判断出了这个x是错误的,就会直接询问妞妞答案。
牛牛最坏情况下要猜多少次才能猜到妞妞想的数呢?
两个整数x,y。1<=x,y<=1014。
一个数n,表示牛牛在最坏情况下猜测的次数。
7 10
2
4 10
0
<?php /* *n1+n2 = $y *n1|n2 <= $x *n1!=n2 */ function a($x, $y){ // 判断x是错误的 if ((2*$x-1) < $y) { return 0; } // 如果x > y 则重置x为y-1 if($x>$y){ $x = $y-1; } $a1 = $y/2; // 取中间值 $a2 = $y%2; // 取余 return $a2 ==0 ? $x-$a1: ($x-$a1)+0.5; } if(fscanf(STDIN, "%d %d", $a, $b) == 2){ echo a($a,$b); }