以上代码哪里出错,求解问题是:已经知道四阶幻方的左上角为1,求解四阶幻方
#include
#include
#include
using namespace std;
//输出
void Display(int a[],int n)
{
for(int i=0;i4)<Test(int a[],int n)
{
int s[10]={0};
s[0]=1+a[4]+a[9]+a[14];
s[1]=a[2]+a[5]+a[8]+a[11];
s[2]=1+a[3]+a[7]+a[11];
s[3]=1+a[0]+a[1]+a[2];
s[4]=a[0]+a[4]+a[8]+a[12];
s[5]=a[1]+a[5]+a[9]+a[13];
s[6]=a[2]+a[6]+a[10]+a[14];
s[7]=a[3]+a[4]+a[5]+a[6];
s[8]=a[7]+a[8]+a[9]+a[10];
s[9]=a[11]+a[12]+a[13]+a[14];
if(s[0]==s[1]&&s[1]==s[2]&&s[2]==s[3]&&s[3]==s[4]&&s[4]==s[5]&&s[5]==s[6]&&s[6]==s[7]&&s[7]==s[8]&&s[8]==s[9]&&s[9]==s[0])
return 1;
else
return 0;
}
//主函数
int main()
{
int a[15]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
int cnt=0;
do
{
if(Test(a,15)==1)
{
Display(a,15);
cnt++;
}
}while(next_permutation(a,a+15));
cout<<"cnt="<
不太懂这个幻方,确定Test函数里这些数组元素求和下标值没有写错