5.16魔幻方阵

Q:魔幻方阵指在n*n的矩阵中填写1~n*n这些数字,使得每行每列以及两个对角线之和均相等。编写一个程序,打印出一种三阶的魔幻方阵。

 

思路一:

//用来判断i~q是否互不相等

int match(int i,int j,int k,int l,int m,int n,int o, int p,int q) {
	if(i!=j && i!=k &&i!=l&&i!=m &&i!=n &&i!=o && i!=p &&i!=q
		&& j!=k &&j!=l && j!=m &&j!=n &&j!=o &&j!=p &&j!=q
		&& k!=l &&k!=m &&k!=n && k!=o &&k!=p &&k!=q && l!=m &&
		l!=n &&l!=o &&l!=p &&l!=q &&m!=n &&m!=o &&m!=p &&m!=q
		&& n!=o &&n!=p && n!=q &&o!=p &&o!=q &&p!=q)
		return 1;
	else	return 0;
}

//用来判断i~q这种排列是否满足魔幻方阵的要求

int just(int i,int j,int k,int l,int m,int n,int o, int p,int q) {
	if(i+j+k==l+m+n &&i+j+k==o+p+q &&i+l+o==j+m+p &&i+l+o==k+n+q
	 &&i+m+q==k+m+o)
	 	return 1;
 	else return 0;
}

 

下面再弄 暴力循环。

 

思路二:DFS深度优先搜索也行!

转载于:https://www.cnblogs.com/dd2hm/p/6788826.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值