#include <iostream>
#include<iomanip>
using namespace std;
class wsq36_magic
{
public: void wsq36_getdata();
void wsq36_setfirstmagic();
void wsq36_generatemagic();
void wsq36_printmagic();
private: int wsq36_m[4][4];
int wsq36_step;
int wsq36_first;
int wsq36_sum;
};
void wsq36_magic::wsq36_getdata()
{
cout << "输入4*4魔方起始值:";
cin >> wsq36_first;
cout << "输入相邻元素差值:";
cin >> wsq36_step;
}
void wsq36_magic::wsq36_setfirstmagic()
{
int wsq36_i, wsq36_j;
int wsq36_tmp;
wsq36_tmp = wsq36_first;
for (wsq36_i = 0; wsq36_i < 4; wsq36_i++)
{
for (wsq36_j = 0; wsq36_j < 4; wsq36_j++)
{ wsq36_m[wsq36_i][wsq36_j] = wsq36_tmp;
wsq36_tmp += wsq36_step; }
}
}
void wsq36_magic::wsq36_generatemagic()
{
wsq36_sum = wsq36_m[0][0] + wsq36_m[3][3];
for (int wsq36_i = 0, wsq36_j = 0; wsq36_i < 4; wsq36_i++, wsq36_j++)
wsq36_m[wsq36_i][wsq36_j] = wsq36_sum - wsq36_m[wsq36_i][wsq36_j];
for (int wsq36_i = 0, wsq36_j = 3; wsq36_i < 4; wsq36_i++, wsq36_j--)
wsq36_m[wsq36_i][wsq36_j] = wsq36_sum - wsq36_m[wsq36_i][wsq36_j];
}
void wsq36_magic::wsq36_printmagic()
{
int wsq36_i, wsq36_j;
for (wsq36_i = 0; wsq36_i < 4; wsq36_i++)
{ for (wsq36_j = 0; wsq36_j < 4; wsq36_j++)
{ cout << setw(5) << wsq36_m[wsq36_i][wsq36_j]; }
cout << endl;
}
}
int main()
{
wsq36_magic A;
A.wsq36_getdata();
A.wsq36_setfirstmagic();
cout << "初始魔方如下:" << endl;
A.wsq36_printmagic();
A.wsq36_generatemagic();
cout << "最终魔方如下:" << endl;
- wsq36_printmagic();
cout<<"wsq36"<<endl;
system("pause");
return 0;
}