程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 循環賽日程表(遞歸法)

循環賽日程表(遞歸法)

編輯:C++入門知識

循環賽日程表(遞歸法)


#include
#include
#include
#include
using namespace std;

/*
*循環賽日程表(遞歸法)
*/

void Copy(int **map,int sr,int sl,int dr,int dl,int k)
{
	for (int i = 0; i < k; i++)
	{
		for (int j = 0; j < k; j++)
		{
			map[dr+i][dl+j] = map[sr+i][sl+j];
		}
	}
}

void Table(int **map,int r,int l,int k)
{
	if(1==k)return;
	//填充左上角
	Table(map,r,l,k/2);
	//填充右上角
	Table(map,r,l+(k/2),k/2);
	//從左上角拷貝到右下角
	Copy(map,r,l,r+k/2,l+k/2,k/2);
	//從右上角拷貝到左下角
	Copy(map,r,l+k/2,r+k/2,l,k/2);
}

int main()
{
	int k;
	//輸入運動員的人數
	cin>>k;
	int ** p =new int*[k];
	//賽程表初始化
	for (int i = 0; i < k; i++)
	{
		p[i] = new int[k];
		p[0][i] = i+1;
		p[i][0] = i+1;
	}
	//運行函數
	Table(p,0,0,k);
	//輸出結果
	cout<<"循環賽日程表(遞歸法):"<(cout," "));
		cout<

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved