列表

详情


BD18. 猜数

描述

牛牛和妞妞正在玩一个猜数游戏,妞妞心里想两个不相等的正数,把这两个正数的和y告诉牛牛。
妞妞声称这两个数都不超过x,让牛牛猜这两个数是多少。
牛牛每猜一次,妞妞会告诉他猜对了还是猜错了,猜对了就停止游戏,猜错了就直到牛牛猜对为止。
妞妞为了加大难度,有时会误报x的大小,如果牛牛可以判断出了这个x是错误的,就会直接询问妞妞答案。
牛牛最坏情况下要猜多少次才能猜到妞妞想的数呢?

输入描述

两个整数x,y。1<=x,y<=1014

输出描述

一个数n,表示牛牛在最坏情况下猜测的次数。

示例1

输入:

7 10

输出:

2

示例2

输入:

4 10

输出:

0

原站题解

C 解法, 执行用时: 2ms, 内存消耗: 368KB, 提交时间: 2020-05-20

#include <stdio.h>
int main() {
  long long x, y;
  scanf("%ld %ld", &x, &y);
  
  long long n = y / 2 + 1;
  x = x > y - 1 ? y - 1 : x;
  long long ret = x - n;
  printf("%ld\n", ret < 0 ? 0 : ret + 1);
  
  return 0;  }

C 解法, 执行用时: 2ms, 内存消耗: 368KB, 提交时间: 2020-05-18

#include <stdio.h>
int main() {
  long long x, y;
  scanf("%ld %ld", &x, &y);
 
  long long n = y / 2 + 1;
  x = x > y - 1 ? y - 1 : x;
  long long ret = x - n;
  printf("%ld\n", ret < 0 ? 0 : ret + 1);
 
  return 0;  }

上一题