网球比赛
题目详情:
2^n个人进行一场网球淘汰赛,假设每个人的实力不同。每个人的编号从1到2^n,编号越小表明实力越强。一般情况下,实力强的人可以战胜实力较弱的人,但是有时候实力较弱的人会超常发挥从而战胜实力比他强的人。
我们约定一个正整数m,编号为x的人可能战胜编号小于x而大于等x-m的人。例如m = 2,编号为5的人有可能战胜编号为3,4的人(但是不可能战胜编号为1的人)。比赛规则是淘汰制,即所有选手两两比赛,赢者进入下一轮,输者被淘汰。这样n轮之后,决定冠军。假设你来安排谁和谁进行比赛,请问最终冠军可能的最大编号是多少?
输入n,m (0<n<14, 0 < m < 2^n)
输出:最终冠军的最大可能编号。
简单的想了一下,
比如8个人
n=3;
m=2;
则第一轮3号可以战胜1号
第二轮5号可以战胜3号
第三轮7号可以战胜5号。
至于具体对阵可以相应编排出来
则最大7号可以为冠军。
所以我的代码是:
public int whowin(int n,int m){
return 1+n*m;
}
代码很简单,提交还是失败。
求帮忙找错。