2.设计一个4*4魔方程序,让魔方的各行值的和等于各列值的和,并且等于两对角线值的和64.例如一下魔方

2.设计一个4*4魔方程序,让魔方的各行值的和等于各列值的和,并且等于两对角线值的和64.例如一下魔方
【提示】
求4*4魔方的一般步骤如下:
(1)设置初始魔方的起始值和相邻元素之间的差值.例如上述魔方的初始魔方的起始值(first)和相邻元素之间的差值(step)分别为:
first=1
step=2
(2)设置初始魔方元素的值.例如上述魔方的初始魔方为:
1 3 5 7
9 11 13 15
17 19 21 23
25 27 29 31
(3)生成最终魔方.方法如下:
①求最大元素值与最小元素值的和sum,该实例的sum是:
1+31=32
②用32减去初始魔方所有对角线上元素的值,然后将结果放在原来的位置,这样就可求得最终魔方.本例最终魔方如下:
31 3 5 25
9 21 19 15
17 13 11 23
7 27 29 1
本题的魔方类magic的参考框架如下:
class magic
{ public:
void getdata();
void setfirstmagic();
void generatemagic();
void printmagic();
private:
int m[4][4];
int step;
int first;
int sum;
};
辛易达 1年前 已收到1个回答 举报

杨朱先生 幼苗

共回答了18个问题采纳率:100% 举报

#include
using namespace std;
class magic
{
public:
void getdata();
void setfirstmagic();
void generatemagic();
void printmagic();
private:
int m[4][4];
int step;
int first;
int sum;
} ;
void magic::getdata()
{
cin>>first>>step>>sum;

}
void magic::setfirstmagic()
{

int temp=first;
for(int i=0;i

1年前

4
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 16 q. 0.024 s. - webmaster@yulucn.com