37支球队进行冠军争夺赛,每两支球队中胜者进入下一轮,直至比赛结束问共进行多少场?如果是n支球队呢
37支球队进行比赛,则第一轮有18支球队经过18场比赛晋级,因为一支球队轮空,所以还剩19支球队;第二轮有9支球队经过9场比赛晋级,因为一支球队轮空,所以还剩10支球队;第三轮有5支球队经过5场比赛晋级;第四轮有2支球队经过2场比赛晋级,因为有一支球队轮空,所以还剩3支球队;第五轮有1支球队经过1场比赛晋级,因为有一支球队轮空,所以还剩2支球队;第六轮有1支球队经过1场比赛晋级。共有36场
归纳可得:
当第×轮比赛时,设己经进行 s场比赛,还剩n支球队,则
建立循环在计算机上模拟即可验证结果
#include <stdio.h>int main()
{int n ,s = 0;scanf("%d",&n);while(n>1){if(n%2==0){s += n/2;n /= 2;}else{s += (n-1)/2;n = (n+1)/2;}}printf("%d",s);return 0;
}
如若不进行枚举找规律,我们可以这么想象,比赛最终只抉出一个冠军球队
那么如果一共有n支球队的话,就要淘汰n-1支球队,因为每一场只能淘汰一支球队,所以一共需要进行n-1场比赛。
本文发布于:2024-01-28 01:03:27,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/17063750153720.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |