CSDN编程之网球比赛(求帮忙找错)

失落夏天
Android领域优质创作者
博客专家认证
2014-01-28 06:26:22
网球比赛
题目详情:

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;
}

代码很简单,提交还是失败。
求帮忙找错。
...全文
504 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
失落夏天 2014-12-17
  • 打赏
  • 举报
回复
引用 11 楼 litaoye 的回复:
这个程序只能说有时是对的,也有不少情况下是错的。 凡是有人通过的题目,数据基本上都没问题,错的应该是你的算法。 [quote=引用 9 楼 Cupid123456 的回复:] public static int win(int n,int m) { int total=(int)Math.pow(2, n); int maxWin=n*m-m+2; if(maxWin>total){ maxWin=total; } return maxWin; } 我这得到的结果是对的,但偍交也说有错,
[/quote] 通过是有种语言的,JAVA的到目前为止我还没找到一个能正常编译通过的代码。包涵别人的。 不是说题有问题,只是说java在线编译提交是不是有什么特别的方式而已。
绿色夹克衫 2014-02-17
  • 打赏
  • 举报
回复
这个程序只能说有时是对的,也有不少情况下是错的。 凡是有人通过的题目,数据基本上都没问题,错的应该是你的算法。
引用 9 楼 Cupid123456 的回复:
public static int win(int n,int m) { int total=(int)Math.pow(2, n); int maxWin=n*m-m+2; if(maxWin>total){ maxWin=total; } return maxWin; } 我这得到的结果是对的,但偍交也说有错,
Cupid123456 2014-02-05
  • 打赏
  • 举报
回复
还有那个:三元组的数量,也是这样。
Cupid123456 2014-02-05
  • 打赏
  • 举报
回复
public static int win(int n,int m) { int total=(int)Math.pow(2, n); int maxWin=n*m-m+2; if(maxWin>total){ maxWin=total; } return maxWin; } 我这得到的结果是对的,但偍交也说有错,
程序员一灯 2014-02-04
  • 打赏
  • 举报
回复
B2fLW1ePT9fySMY/uSCQyM+PFLIUH/afZEnCAMmFf9Y=B2fLW1ePT9fySMY/uSCQyM+PFLIUH/afZEnCAMmFf9Y=
绿色夹克衫 2014-02-03
  • 打赏
  • 举报
回复
4 4最大编号是16,你怎么排能让最后1个人夺冠?
引用 4 楼 AA5279AA 的回复:
[quote=引用 3 楼 litaoye 的回复:] 不过这个逻辑你的程序中没有体现,另外就算是加上这个逻辑,也不对,你试试4 4能弄出16来么。 [quote=引用 2 楼 AA5279AA 的回复:] [quote=引用 1 楼 litaoye 的回复:] 错误太多,这个结果甚至可以大于2^n。
大于2^n的就是代表最后一个也可以拿冠军,这个应该不会想不到吧?[/quote][/quote] 4 4 的结果是17吧, 大约人数,也就是最后一个可以夺冠。[/quote]
失落夏天 2014-02-03
  • 打赏
  • 举报
回复
引用 3 楼 litaoye 的回复:
不过这个逻辑你的程序中没有体现,另外就算是加上这个逻辑,也不对,你试试4 4能弄出16来么。 [quote=引用 2 楼 AA5279AA 的回复:] [quote=引用 1 楼 litaoye 的回复:] 错误太多,这个结果甚至可以大于2^n。
大于2^n的就是代表最后一个也可以拿冠军,这个应该不会想不到吧?[/quote][/quote] 4 4 的结果是17吧, 大约人数,也就是最后一个可以夺冠。
失落夏天 2014-02-01
  • 打赏
  • 举报
回复
引用 1 楼 litaoye 的回复:
错误太多,这个结果甚至可以大于2^n。
大于2^n的就是代表最后一个也可以拿冠军,这个应该不会想不到吧?
绿色夹克衫 2014-02-01
  • 打赏
  • 举报
回复
不过这个逻辑你的程序中没有体现,另外就算是加上这个逻辑,也不对,你试试4 4能弄出16来么。
引用 2 楼 AA5279AA 的回复:
[quote=引用 1 楼 litaoye 的回复:] 错误太多,这个结果甚至可以大于2^n。
大于2^n的就是代表最后一个也可以拿冠军,这个应该不会想不到吧?[/quote]
绿色夹克衫 2014-01-29
  • 打赏
  • 举报
回复
错误太多,这个结果甚至可以大于2^n。

50,523

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧