送分,还是送分!!!!!!!!!!!(关于足球比赛的赛程生成)

HasanSas 2003-12-13 09:39:02
如果某联赛现有18只球队,怎样随即生成全部主客场2回合306场比赛???
要求每轮显示9场比赛,各位高手如能提供源代码或者思路的都有分,谢谢了
...全文
47 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
HasanSas 2003-12-19
  • 打赏
  • 举报
回复
to plainsong(短歌):兄弟不好意思啊,节分慢了,我每个星期只有周末才能回家上网,可怜啊。。。。多谢你了!!
jingfeng198 2003-12-14
  • 打赏
  • 举报
回复
接分,还是接分!!!!!!!!!!!!!!
短歌如风 2003-12-13
  • 打赏
  • 举报
回复
随即?随机?

#include <iostream>
#include <vector>
#include <algorithm>

typedef std::vector<int> int_array;

int main()
{
int team_count;//队伍总数
std::cin >> team_count;
int virtual_team_count = team_count;//虚拟队伍数,保证是偶数
if (virtual_team_count % 2 != 0)
++virtual_team_count;
int turn_count = virtual_team_count - 1;//比赛轮数
int game_count_per_turn = virtual_team_count / 2;//每轮的比赛数
int_array game_numbers(virtual_team_count);//所有的队伍号码
for(int i = 1; i <= team_count; ++i)
game_numbers[i - 1] = i;
if (virtual_team_count != team_count)
{
std::rotate(game_numbers.begin() + virtual_team_count / 2, game_numbers.end() - 1, game_numbers.end());
game_numbers[virtual_team_count / 2] = 0;//虚拟的队伍号码为0
}
//如果要“随机”,加下下面这句
//std::random_shuffle(game_numbers.begin(), game_numbers.end());
for (int i = 1; i <= turn_count; ++i)
{
std::cout << "第" << i << "轮:";
for (int j = 1; j <= game_count_per_turn; j ++)
{
std::cout << "<" << game_numbers[j - 1] << "," << game_numbers[virtual_team_count - j] << "> ";
}
std::cout << std::endl;
std::rotate(game_numbers.begin() + 1, game_numbers.end() - 1, game_numbers.end());
}
}

33,029

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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