题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2178
题目的意思比较难以理解。
讲的是"最多猜n次,但一定可以猜到1至m(闭区间[1,m])内的任意数字,求m的最大值"
也就是给出n,求m,有如下公式:
n = log2(m)
m = 2^n
在最坏的情况下,在1到m间,最多只要猜log2(m)+1(取整)次,所以易知:m=2^n-1。即猜m次,,
能猜到的最大的数为2^n-1。
下面AC代码:
import java.util.Scanner;
public class Main{
private static Scanner scanner;
public static void main(String[] args) {
scanner = new Scanner(System.in);
int cases = scanner.nextInt();
while (cases-- > 0) {
int n = scanner.nextInt();
System.out.println((int) Math.pow(2, n) - 1);
}
}
}