大家帮忙写个程序(急需)

来源:百度知道 编辑:UC知道 时间:2024/06/23 08:41:01
利用分治策略解决赛程问题。有n(n为2的k次方)个编号为1到n的运动员参加某项运动的单循环比赛,即每个运动员要和所有其他运动员进行一次比赛。试为这n个运动员安排一个比赛日程,使得每个运动员每天只进行一场比赛,且整个比赛在n-1天内结束。输入运动员人数n(n<=10000),输出一个n阶方阵A[1..N,0..N-1],当j>0时,A[i,j]表示第i名运动员在第j天的比赛对手。
使用C语言编程
一定要使用C语言 不然我有点看不懂 最好能解释下 谢谢

我只会PASCAL语言
都差不多
你应该能看懂
改改就行了
麻烦你了。。

begin
求2的K次方的值→N
将数组A第一行进行赋值→(1,2,3,4,5,6,7,8);
for s:=1 to k do
begin
n:=n/2;
for t:=1 to n do
for i:=m+1 to 2*m do
for j:=m+1 to 2*m do
begin
a[i,j+(t-1)*m*2]:=a[i-m,j+(t-1)*m*2-m];
a[i,j+(t-1)*m*2-m]:=a[i-m,j+(t-1)*m*2];
end;
m:=m*2;
end;
输出;
end.