HDOJ(HDU) 2178 猜数字(题意有点难理解、、、)

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

这个题目我总感觉题意没说明白,没办法。参考了一下网上的题意。

题意就是:

最多猜n次一定可以猜到1至m(闭区间)内的任意数字,求m的最大值。

用二分法猜可以很快的猜出一个被猜数

但是如果一个数在特定的次数下被猜出来的话,用二分法算出的这个被猜数的范围会更大

也就是题目中说出的最大数

import java.util.Scanner;

public class Main{
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int t =sc.nextInt();
        while(t-->0){
            int n =sc.nextInt();
            System.out.println((int)(Math.pow(2, n)-1));
        }
    }
}
时间: 2024-11-01 00:55:24

HDOJ(HDU) 2178 猜数字(题意有点难理解、、、)的相关文章

Hdu 2178 猜数字

猜数字 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 3415    Accepted Submission(s): 2458 Problem Description A有1数m,B来猜.B每猜一次,A就说"太大","太小"或"对了" . 问B猜n次可以猜到的最大数. Input 第1

HDU 2178.猜数字【分析能力练习】【读题能力联系】【8月10】

猜数字 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 哎呀妈呀,这题什么意思啊!-----第一感觉 仔细理解理解:比如数据中的3次可以最大猜到7

HDU 1172 猜数字

猜数字 题意: 计算机随机产生一个四位数,然后玩家猜这个四位数是什么.每猜一个数,计算机都会告诉玩家猜对几个数字,其中有几个数字在正确的位置上. 注意 多组输入 答案唯一,假如有多个答案,输出"Not sure" 难点在如何判断 计算机回答猜对了B个数字 , 例如 计算机输入 1234 猜对了3个数字,正确的答案是 1115 意思是 答案中存在 三个 1 ,即计算机只需要猜对有几个数字就行,每个数都能在答案中猜出全部的个数 例如 计算机输入 1112 猜对了 1个数字,正确的答案是 1

HDU 1172.猜数字【思路转换,思维练习】【枚举】【8月8】

猜数字 Problem Description 猜数字游戏是gameboy最喜欢的游戏之一.游戏的规则是这样的:计算机随机产生一个四位数,然后玩家猜这个四位数是什么.每猜一个数,计算机都会告诉玩家猜对几个数字,其中有几个数字在正确的位置上. 比如计算机随机产生的数字为1122.如果玩家猜1234,因为1,2这两个数字同时存在于这两个数中,而且1在这两个数中的位置是相同的,所以计算机会告诉玩家猜对了2个数字,其中一个在正确的位置.如果玩家猜1111,那么计算机会告诉他猜对2个数字,有2个在正确的位

HDU 1172 猜数字(DFS)

猜数字 Time Limit:10000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Status Description 猜数字游戏是gameboy最喜欢的游戏之一.游戏的规则是这样的:计算机随机产生一个四位数,然后玩家猜这个四位数是什么.每猜一个数,计算机都会告诉玩家猜对几个数字,其中有几个数字在正确的位置上.比如计算机随机产生的数字为1122.如果玩家猜1234,因为1,2这两个数字同时存在于这两个

HDU 1172 猜数字(暴力)

Problem Description 猜数字游戏是gameboy最喜欢的游戏之一.游戏的规则是这样的:计算机随机产生一个四位数,然后玩家猜这个四位数是什么.每猜一个数,计算机都会告诉玩家猜对几个数字,其中有几个数字在正确的位置上. 比如计算机随机产生的数字为1122.如果玩家猜1234,因为1,2这两个数字同时存在于这两个数中,而且1在这两个数中的位置是相同的,所以计算机会告诉玩家猜对了2个数字,其中一个在正确的位置.如果玩家猜1111,那么计算机会告诉他猜对2个数字,有2个在正确的位置. 现

HDU ACM 2178 猜数字

分析:最坏情况下,在1到m间,最多只要猜log2(m)+1(取整)次,所以=>m=2^n-1.即猜n次,猜到的最大数为2^n-1.也可认为,在数1到2^n-1间,都可以在n次内猜出来. #include<iostream> #include<cmath> using namespace std; int main() { int T,n; scanf("%d",&T); while(T--) { printf("%d\n",(s

hdu - 1172 猜数字 (思维题)

http://acm.hdu.edu.cn/showproblem.php?pid=1172 这个题换一种想法,可以找出四位数中所有满足条件的数看是否只有一个. 1 #include <iostream> 2 #include <cstdio> 3 #include <cmath> 4 #include <vector> 5 #include <cstring> 6 #include <string> 7 #include <a

HDU猜数字

G - 猜数字 Time Limit:10000MS       Memory Limit:32768KB       64bit IO Format:%I64d & %I64u Description 猜数字游戏是gameboy最喜欢的游戏之一.游戏的规则是这样的:计算机随机产生一个四位数,然后玩家猜这个四位数是什么.每猜一个数,计算机都会告诉玩家猜对几个数字,其中有几个数字在正确的位置上.  比如计算机随机产生的数字为1122.如果玩家猜1234,因为1,2这两个数字同时存在于这两个数中,而