神奇的魔术方阵

本文介绍了魔术方阵的历史和构造方法,特别是针对N为奇数的情况。文章详细阐述了构造规则,并提供了一段C语言代码来实现这一过程。运行代码后,可以生成符合规则的魔术方阵。
摘要由CSDN通过智能技术生成
魔术方阵简单的说,就是将连续整数1,2,3....,n 的数字,依特别之顺序,排在方阵里.使每一行的数,每一列的数或对角线位置的数各自相加,所得的和皆均为相同.

魔术方阵别称魔术方阵,是一种已流传千年的数字排列,不管是中西方对这奇妙的阵列都有所研究.


对平面魔方的构造,分为三种情况:N为奇数、N为4的倍数、N为其它偶数(4n+2的形式)  
N 为奇数时,最简单  
 (1) 将1放在第一行中间一列;  
 (2) 从2开始直到n×n止各数依次按下列规则存放:每一个数存放的行比前一个数的行数减1,列数加1 
 (3) 如果行列范围超出矩阵范围,则回绕。   例如1在第1行,则2应放在最下一行,列数同样加1;  
 (4) 如果按上面规则确定的位置上已有数,或上一个数是第1行第n列时,则把下一个数放在上一个数的下面。


用C语言实现的代码:

#include <stdio.h>
#include <stdlib.h>

#define MAXSIZE 100

int main()
{
	int n;   //矩阵行、列数
	int matrix[MAXSIZE][MAXSIZE]={0};
	int i=1,j;     //循环变量
	int k=1;
	int tmpi=0,tmpj=0;

	while(1)
	{
		printf("请输入矩阵行数(奇数):");
	    scanf("%d",&n);
		if((n<=0)||(n%2==0))
		{
			printf("请输入正确的矩阵行
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值