循环赛日程表

循环赛日程表

//循环赛日程表
package wkx;
 
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Scanner;
 
public class Test {
	
	private static void Copy(int[][] m,int beg,int mid,int end) {
		int len=mid-beg+1;
		for(int i=beg;i<=mid;i++){
			for(int j=0;j<len;j++)
				m[i+len][j+len]=m[i][j];
		}
		for(int i=mid+1;i<=end;i++){
			for(int j=0;j<len;j++)
				m[i-len][j+len]=m[i][j];
		}
	}
	
	private static void Table(int[][] m,int beg,int end) {
		int size=end-beg+1;
		if(size==1)
			return;
		int mid=size/2+beg-1;
		Table(m,beg,mid);
		Table(m,mid+1,end);
		Copy(m,beg,mid,end);
	}
	
	private static void print(int[][] m,int size) throws IOException {
		PrintWriter out=new PrintWriter(new FileWriter("C:\\Users\\Jack\\Desktop\\output.txt"));
		for(int i=0;i<size;i++){
			for(int j=0;j<size;j++){
				out.print(m[i][j]);
			}
			out.println();
		}
		out.close();
	}
 
	public static void main(String[] args) throws IOException {
		
		int[][] m=new int[100][100];
		Scanner in=new Scanner(System.in);
		int size=in.nextInt();
		int k=(size%2==0?size:size+1);
		for(int i=0;i<k;i++)
			m[i][0]=i+1;
		Table(m,0,size-1);
		print(m,size);
	}
 
}

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注