c语言之循环赛算法
来源:互联网 发布:淘宝怎样收藏店铺 编辑:程序博客网 时间:2024/06/07 03:37
设有n=2^k个运动员,要进行网球循环赛。现在要设计一个满足以下要求的比赛日程表:
(1).每个选手必须与其他n-1个选手各赛一场
(2).每个选手一天只能赛一次
(3).循环赛一共进行n-1天
对于循环赛的计算,如果说吧所有的比赛算出来过于复杂,但是对于2个队伍的比赛我们就可以非常轻松的做出来。
所以说我们将2个队伍的比赛列出来然后进行迭代法吧所有比赛排列出来就可以了。
代码如下:
#include<stdio.h>
#include<math.h>
void xunhuan(int k)
{
int a[100][100];
int n,temp,i,j,p,t;
n=2;
a[1][1]=1;a[1][2]=2;
a[2][1]=2;a[2][2]=1;
for(t=1;t<k;t++)
{
temp=n;n=n*2;
for(i=temp+1;i<=n;i++)
for(j=1;j<=temp;j++)
a[i][j]=a[i-temp][j]+temp;
for(i=1;i<=temp;i++)
for(j=temp+1;j<=n;j++)
a[i][j]=a[i+temp][(j+temp)%n];
for(i=temp+1;i<=n;i++)
for(j=temp+1;j<=n;j++)
a[i][j]=a[i-temp][j-temp];
}
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{
printf("%d ",a[i][j]);
if(j==n)
printf("\n");
}
}
void main()
{
int k;
printf("比赛选手个数为n(n=2^k),请输入参数K(K>0):\n");
scanf("%d",&k);
if(k!=0)
xunhuan(k);
}
- c语言之循环赛算法
- 算法之循环赛日程表
- 循环赛算法
- [算法之分治法应用] 循环赛日程表
- 分治算法--循环赛日程表
- 循环赛日程表算法
- C++循环赛日程表算法
- 算法设计☞循环赛
- 循环赛算法分析
- C语言 之 素数算法
- C语言之排序算法
- C语言之MD5算法
- C语言之贪心算法
- C语言算法之背包算法
- 算法 动态规划 循环赛问题
- 循环赛日程编排c代码
- [算法]字符串匹配算法之BM算法,C语言实现
- 旅行推销员问题之C语言算法
- python中的__new__方法
- linux各目录的作用
- 抽象类,接口,多肽和内部类以及内存管理
- Java的反射机制
- Mybatis学习笔记-初识
- c语言之循环赛算法
- 上下文切换
- phpstorm点滴
- SpringBoot学习之入门篇
- Unity自学之路(2)——UGUI
- 单链表的基本操作
- STL:计算集合的并
- Matplotlib 入门(二):画图
- std::common_type用法