hdu 3927 Math Geek

http://acm.hdu.edu.cn/showproblem.php?pid=3927

反幻方,挺有意思的一道题

具体可以见证明 http://www.cnblogs.com/lwbaptx/admin/Files.aspx

给出的一个构造反幻方的方法

定理:若n(n>=3)阶方阵为 A=[aij]

a[i][j]=(i-1)*(n-1)+j ;  (i=1,...n, j=1,....n-1)

a[i][j]=n*(n-1)+i;        (i=1,...n,j=n)

则A是一个n阶反幻方

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cmath>
#include <string.h>
#include <vector>
int a[205][205];
int main()
{

	int n,T,t=1;
	scanf("%d",&T);
	while(T--)
	{
		scanf("%d",&n);
		for(int i=1;i<=n;i++)
		{
			for(int j=1;j<=n-1;j++)
				a[i][j]=(i-1)*(n-1)+j;
			a[i][n]=n*(n-1)+i;
		}
		printf("Case #%d:\n",t++);
		for(int i=1;i<=n;i++)
		{
			for(int j=1;j<=n;j++)
				printf("%d ",a[i][j]);
			printf("\n");
		}
	}
	return 0;
}

posted on 2011-08-11 01:14  lwbaptx  阅读(290)  评论(0编辑  收藏  举报

导航