1579.三阶幻方
时限:1000ms 内存限制:10000K 总时限:3000ms
描述
三阶幻方是最简单的幻方,又叫九宫格,是由1,2,3,4,5,6,7,8,9九个数字组成的一个三行三列的矩阵,其对角线、横行、纵向的的和都为15。
输入
无
输出
按字典序输出所有的满足条件的幻方矩阵,每两个数字之间带一个空格,行尾无空格,每个幻方后带一个空行。
输入样例
无
输出样例
无
#include<iostream>
#include<algorithm>
using namespace std;
int a[9]={1,2,3,4,5,6,7,8,9};
int main()
{
int i,j,flag=0;
while(next_permutation(a,a+9))
{
int sum1 = a[0]+a[1]+a[2];
int sum2 = a[3]+a[4]+a[5];
int sum3 = a[6]+a[7]+a[8];
int sum4 = a[0]+a[3]+a[6];
int sum5 = a[1]+a[4]+a[7];
int sum6 = a[2]+a[5]+a[8];
int sum7 = a[0]+a[4]+a[8];
int sum8 = a[2]+a[4]+a[6];
if(sum1==15&&sum2==15&&sum3==15&&sum4==15&&sum5==15&&sum6==15&&sum7==15&&sum8==15)
{
flag=1;
}
if(flag==1)
{
cout<<a[0]<<" "<<a[1]<<" "<<a[2];
cout<<endl;
cout<<a[3]<<" "<<a[4]<<" "<<a[5];
cout<<endl;
cout<<a[6]<<" "<<a[7]<<" "<<a[8];
cout<<endl;
cout<<endl;
}
flag=0;
}
return 0;
}