P81 、实验2: 设计一个4*4魔方程序,让魔方的各行值的和等于各列值的和,并且等于两对角线值的和。例如,以下魔方:
31 3 5 25
9 21 19 15
17 13 11 23
7 27 29 1
各行、各列以及对角线值的和都是64.
#include<iostream>
#include<iomanip>
using namespace std;
class magic
{ public:
int f;
int s;
int b;
int m[4][4];
void getdate();
void setfirstmagic();
void generatemagic();
void printmagic();
private:
int step;
int first;
int sum;
};
<pre name="code" class="cpp">
void magic::getdate(){ cout<<"输入初始值:"<<endl; cin>>f>>s; first=f; step=s;}void magic::setfirstmagic(){m[0][0]=f;m[0][1]=f+s;
for(b=1;b<4;b++)
m[0][b+1]=m[0][b]+s;
m[1][0]=m[0][3]+s;
for(b=0;b<4;b++)
m[1][b+1]=m[1][b]