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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

数学趣题——魔幻方阵

發布時間:2024/4/17 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数学趣题——魔幻方阵 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

數學趣題——魔幻方陣

轉載鏈接:http://www.cnblogs.com/steven_oyj/archive/2010/05/26/1744130.html

問題:

在n*n的矩陣中填寫1~n*n這n*n個數字。使得它的每一行、每一列以及兩個對角線之和均相等。求出一個這樣的三階魔幻方陣

最簡單,效率最低的窮舉法可以解。

源碼:


#include <stdio.h> 2:? 3: int match(int i,int j,int k,int l,int m,int n,int o,int p,int q) 4: { 5: /*判斷變量i-q是否互不相等,是則返回1,不是則返回0*/ 6: if(i!=j&&i!=k&&i!=l&&i!=m&&i!=n&&i!=o&&i!=p&&i!=q 7: &&j!=k&&j!=l&&j!=m&&j!=n&&j!=o&&j!=p&&j!=q 8: &&k!=l&&k!=m&&k!=n&&k!=o&&k!=p&&i!=q 9: &&l!=m&&l!=n&&l!=o&&l!=p&&l!=q 10: &&m!=n&&m!=o&&m!=p&&m!=q 11: &&n!=o&&n!=p&&n!=q 12: &&o!=p&&o!=q 13: &&p!=q) 14: return 1 ; 15: else return 0; 16: } 17:? 18:? 19: int justic(int i,int j,int k,int l,int m,int n,int o,int p,int q) 20: { 21: /*判斷變量i-q的這種排列是否滿足魔幻方陣的要求,滿足返回1,不滿足返回0*/ 22: if(i+j+k == l+m+n && i+j+k == o+p+q && 23: i+l+o == j+m+p && i+l+o == k+n+q 24: && i+m+q == k+m+o)return 1; 25: else return 0; 26: } 27:? 28: void getMatrix(){ 29: int i,j,k,l,m,n,o,p,q; 30: for(i=1;i<=9;i++) 31: for(j=1;j<=9;j++) 32: for(k=1;k<=9;k++) 33: for(l=1;l<=9;l++) 34: for(m=1;m<=9;m++) 35: for(n=1;n<=9;n++) 36: for(o=1;o<=9;o++) 37: for(p=1;p<=9;p++) 38: for(q=1;q<=9;q++) 39: { 40: if(match(i,j,k,l,m,n,o,p,q)) 41: if(justic(i,j,k,l,m,n,o,p,q)) 42: { 43: printf("%d %d %d\n",i,j,k); /*輸出結果*/ 44: printf("%d %d %d\n",l,m,n); 45: printf("%d %d %d\n",o,p,q); 46: printf("\n"); 47: return; 48: } /*返回*/ 49: } 50:? 51: } 52:? 53: int main() 54: { 55: getMatrix() ; /*輸出一個三階魔幻方陣*/ 56: return 0; 57: } 58:?

轉載于:https://www.cnblogs.com/chenyuanqiu2008/p/5201147.html

總結

以上是生活随笔為你收集整理的数学趣题——魔幻方阵的全部內容,希望文章能夠幫你解決所遇到的問題。

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