Java实现拉丁方阵

public class lading {
	void init(linkList l,int n){
		linkList p=l;
		linkList s;
		for(int i=0;i<n*n;i++) {
			s = new linkList();
			s.data=0;
			p.next=s;
			p=s;
		}
		p.next = l.next;
		
		creat(l,n);
		print(l,n);
	}
	
	void creat(linkList l,int n){
		linkList p=l;
		for(int i=0;i<n*n;i++) {
			int a = i / n;
			int b = i % n + 1;
			int r = (a + b) % n;
			r = r % n ==0 ? n : r;
			p.next.data = r;
			p = p.next;
		}
		
	}
	
	void print(linkList l,int n) {
		linkList p=l;
		for(int i=0;i<n*n;i++) {
			System.out.print(p.next.data+"    ");
			p=p.next;
			if((i+1)%n==0) System.out.println();
		}
	}
	
	public static void main(String[] args) {
		lading la = new lading();
		linkList l = new linkList();
		la.init(l, 5);
	}
}


class linkList{
	int data;
	linkList next;
}

 

    原文作者:拉丁方阵问题
    原文地址: https://blog.csdn.net/lxp_1101/article/details/85081752
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞