1、用递归实现循环赛日程表的算法using namespace std;templatevoid Print2(Type *a,int n,int m) /输出 n*m 矩阵 atemplatevoid TwoDimArray(Type* /定义指针的指针 a,用于引用一个二维数组int n=9; /二维数组的大小 9*9TwoDimArray(a,n,n); /给 a 引用的二维数组分配空间/第 1 行第 1 列不用for(int i=1; iusing namespace std;templatevoid Print2(Type *a,int n,int m)/输出 n*m 矩阵 afor(i
2、nt i=1; ivoid TwoDimArray(Type* for(int i=0; ivoid DimArrayCopy(Type *a,int r1,int c1,int r2,int c2,int k)for(int i=0; ik; i+)for(int j=0; jk; j+)ar2+ic2+j=ar1+ic1+j;/填写矩阵 a 中左上角下标为(1,m )含 k 个元素的日程表方阵void Table(int *a,int m,int k)if(k2)return;elseTable(a,m,k/2);Table(a,m+k/2,k/2);DimArrayCopy(a,1,m,k/2+1,m+k/2,k/2);DimArrayCopy(a,1,k/2+m,k/2+1,m,k/2);int main()int *a; /定义指针的指针 a,用于引用一个二维数组int n=9; /二维数组的大小 9*9TwoDimArray(a,n,n); /给 a 引用的二维数组分配空间/第 1 行第 1 列不用for(int i=1; in; i+) /填写第 1 行a1i=i;Table(a,1,n-1); /填写矩阵 a 中左上角下标为(1,1)含 k 个元素的日程表方阵Print2(a,n,n); /输出日程表return 0;