日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2025/3/15 编程问答 26 豆豆

求4*4的魔方的一般步驟如下:

設置初始魔方的起始值和相鄰元素之間的差值。例如上述魔方的初始魔方的起始值(first)和相鄰元素之間的差值(step)分別為:first=1;?step=2;

設置初始魔方元素的值,例如上述魔方的初始魔方為:

1 ??3 ??5 ??7

9 ??11 ?13 ?15

17 ?19 ?21 ?23

25 ?27 ?29 ?31

生成最終魔方。方法如下:

求最大元素值與最小元素值的和sum,該實例的sum是:1+31=32

用32減去初始魔方所有對角線上元素的值,然后將結果放在原來的位置,這樣就可以求得最終魔方。

#include<iostream> using namespace std; class Mj {public:void getdata();//輸入數據的成員函數; void getfirstmafic();//對數組進行賦值; void generatemagic();//對數組進行運算; void printmagic();//輸出結果: private:int m[4][4];//定義一個四維數組; int step;//差值; int first;//第一個值; int sum;//最大值; }; void Mj::getdata() {cin>>first>>step>>sum;//輸入初始值、差值、最大值; } void Mj::getfirstmafic() {int a,b;a=first;b=step;for(int i=0;i<4;i++){for(int j=0;j<4;j++){m[i][j]=a;//進行對數組的賦值; a+=b;}} } void Mj::generatemagic() {for(int i=0;i<4;i++){m[i][i]=sum-m[i][i];//對對角線上的值進行運算; m[i][3-i]=sum-m[i][3-i];//對副對角線上的值運算: } } void Mj::printmagic() {for(int i=0;i<4;i++){for(int j=0;j<4;j++){cout<<m[i][j]<<ends;//輸出數組; }cout<<endl;} } int main() {Mj t1;//定義一個類的對象; t1.getdata();//調用成員函數; t1.getfirstmafic();t1.generatemagic();t1.printmagic();return 0;}

?

總結

以上是生活随笔為你收集整理的设计一个4*4魔方程序,让魔方的各行值的和等于各列值的和,并且等于两对角线的和,例如以下魔方,各行各列及两对角线值的和都是64.的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。