#include<iostream>
#include<iomanip>
using namespace std;
class magic
{
public:
void getdata(int ,int );
void setfirstmagic();
void generatemagic();
void printmagic();
private:
int a[4][4];
int step;
int first;
int sum;
};
void magic::getdata(int m,int n)
{
first=m;
step=n;
a[0][0]=m;
}
void magic::setfirstmagic()
{
int i,j ;
for(i=0;i<=3;i++)
for(j=0;j<=3;j++)
a[i][j]=first*(4*i+1)+step*j;
cout<<"初始魔方:"<<endl;
for(i=0;i<=3;i++)
{
for(j=0;j<=3;j++)
cout<<setw(5)<<a[i][j];
cout<<endl;
}
}
void magic::generatemagic()
{
int i,j,max=a[0][0],min=a[0][0],sum;
for(i=0;i<=3;i++)
for(j=0;j<=3;j++)
if(min>=a[i][j])
min=a[i][j];
for(i=0;i<=3;i++)
for(j=0;j<=3;j++)
if(max<=a[i][j])
max=a[i][j];
sum=max+min;
for(i=0;i<=3;i++)
for(j=0;j<=3;j++)
if((i==j)||(i+j==3))
a[i][j]=sum-a[i][j];
}
void magic::printmagic()
{
int i,j;
cout<<"最终魔方:"<<endl;
for(i=0;i<=3;i++)
{
for(j=0;j<=3;j++)
cout<<setw(5)<<a[i][j];
cout<<endl;
}
}
int main()
{
magic r;
r.getdata(2,2);
r.setfirstmagic();
r.generatemagic();
r.printmagic();
#include<iomanip>
using namespace std;
class magic
{
public:
void getdata(int ,int );
void setfirstmagic();
void generatemagic();
void printmagic();
private:
int a[4][4];
int step;
int first;
int sum;
};
void magic::getdata(int m,int n)
{
first=m;
step=n;
a[0][0]=m;
}
void magic::setfirstmagic()
{
int i,j ;
for(i=0;i<=3;i++)
for(j=0;j<=3;j++)
a[i][j]=first*(4*i+1)+step*j;
cout<<"初始魔方:"<<endl;
for(i=0;i<=3;i++)
{
for(j=0;j<=3;j++)
cout<<setw(5)<<a[i][j];
cout<<endl;
}
}
void magic::generatemagic()
{
int i,j,max=a[0][0],min=a[0][0],sum;
for(i=0;i<=3;i++)
for(j=0;j<=3;j++)
if(min>=a[i][j])
min=a[i][j];
for(i=0;i<=3;i++)
for(j=0;j<=3;j++)
if(max<=a[i][j])
max=a[i][j];
sum=max+min;
for(i=0;i<=3;i++)
for(j=0;j<=3;j++)
if((i==j)||(i+j==3))
a[i][j]=sum-a[i][j];
}
void magic::printmagic()
{
int i,j;
cout<<"最终魔方:"<<endl;
for(i=0;i<=3;i++)
{
for(j=0;j<=3;j++)
cout<<setw(5)<<a[i][j];
cout<<endl;
}
}
int main()
{
magic r;
r.getdata(2,2);
r.setfirstmagic();
r.generatemagic();
r.printmagic();
return 0;
}