程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
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 k)
{
	for (int i = 2; i <= k; i<<=1)
	{
		for (int j = 0; j < k; j+=i)
		{
			//從左上角拷貝到右下角
			Copy(map,0,j,0+i/2,j+i/2,i/2);
			//從右上角拷貝到左下角
			Copy(map,0,j+i/2,0+i/2,j,i/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,k);
	//輸出結果
	cout<<"循環賽日程表(非遞歸法):"<(cout," "));
		cout<

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