奇数阶偶数阶的幻方

  • 首先是奇数幻方,例如:构造一个五阶幻方
    -先画一个5*5的表格。把“1”放在中间一列最上边的方格中,从它开始,按对角线方向(从左下往右上)顺次把由小到大的各数放入方格中。
    -如果碰到顶,则折向底,如果到达右侧,则折向左边。
    -如果进行中轮到方格中已经有数或者到达右上角则退至前一格的下方。一直到所有格子都有数
  • 偶数幻方以4倍的偶数阶方阵为例的构造方法
    -用横线和竖线将n阶方阵划分为m个44的小方阵;
    -将n
    n个数从小到大,从左到右,从上到下依次填入方阵中,遇到44小方阵的对角线不填(此位置不填的数不作为下一个位置填入的数)
    -将n
    n个数从大到小,从左到右,从上到下依次填入方阵中4*4小方阵的对角线.上,其他位置不填(此位置不填的数不作为下一个位置填入的数)
public class text1{
public static void main(String[] args){
	java.util.Scanner s=new java.util.Scanner(System.in);
	System.out.print("Enter the number:");
    int n=s.nextInt();
	int square[][]=new int[n][n];
	if(n%2==1){
		int j=(n-1)/2,i=0;
		for(int a=0;a<n*n;){
			a++;
			if(square[i][j]==0)
			{
				square[i][j]=a;
				i=(i-1+n)%n;
				j=(j+1)%n;
			}
			else 
			{
				i=(i+2)%n;
				j=(j-1+n)%n;
				a=a-1;
			}
		}
	}
	else
	{
		int i,j,a=n*n,c=1;
		for(i=0;i<n;i++){
			for(j=0;j<n;j++){
				if(i%4==j%4||i%4+3==j%4||i%4==j%4+3)
					square[i][j]=a;
				else 
					square[i][j]=c;
				a--;c++;
			}
		}
	}
	for(int i=0;i<n;i++){
		for(int j=0;j<n;j++){
			System.out.format("%3d",square[i][j]);
		}
		System.out.println();
	}
}
}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值