當前位置:網站首頁>【C語言典例】——day3:設計魔方陣(數組)
【C語言典例】——day3:設計魔方陣(數組)
2022-01-27 09:30:09 【同學〖森〗】
※※※大家好!我是同學〖森〗,一名計算機愛好者,今天讓我們進入刷題模式。若有錯誤,請多多指教。
點贊 收藏 留言 都是我創作的最大的動力!
目錄
魔方陣(magic matrix)
魔方陣,古代又稱“縱橫圖”,是指組成元素為自然數1、2、…、n的平方的n×n的方陣,其中每個元素值都不相等,且每行、每列以及主、副對角線上各n個元素之和都相等。
幻方,有時又稱魔方(該稱呼現一般指立方體的魔術方塊)或縱橫圖,由一組排放在正方形中的整數組成,其每行、每列以及兩條對角線上的數之和均相等。通常幻方由從1到N2的連續整數組成,其中N為正方形的行或列的數目。因此 N階幻方有N行N列,並且所填充的數為從1到N2。 [1]
幻方可以使用N階方陣來錶示,方陣的每行、每列以及兩條對角線的和都等於常數
,如果填充數為1,2,……,N^2。
,那麼有
⒈何謂矩陣?矩陣就是由方程組的系數及常數所構成的方陣。把用在解線性方程組上既方便,又直觀。
⒉何謂n階方陣?若一個矩陣是由n個橫列與n個縱行所構成,共有n*n個小方格,則稱這個方陣是一個n階方陣。
⒊何謂魔方陣? 定義:由n*n個數字所組成的n階方陣,具有各對角線,各橫列與縱行的數字和都相等的性質,稱為魔方陣。而這個相等的和稱為魔術數字。若填入的數字是從1到n*n,稱此種魔方陣為n階正規魔方陣。
⒋最早的魔方陣相傳古時為了幫助治水專家大禹統治天下,由水中浮出兩只龐大動物背上各負有一圖,只有大禹才可指揮其中之由龍馬負出的為河圖,出自黃河;另一由理龜負出的洛書出自洛河。
⒌最早的四階魔方陣相傳是刻在印度一所廟宇石上,年代大約是十一世紀。古代印度人十分崇拜這種幻方,至今從古神殿的遺址,墓碑上常常還可以發現四階幻方的遺迹。
⒍歐洲最早的魔方陣是公元1514年德國畫家Albrecht Dure在他著名的銅板畫Melencolia上的4×4幻方,有趣的是,他連創造年代(1514)也鑲在這個方陣中,而且上下左右,四個小方陣的和皆為34,是歐洲最古老的幻方。
題目描述:
打印5階幻方即它的每一行,每一列和對角線之和均相等。
問題分析:
(1)將1放在第一行中間一列。
(2)從2開始直到25各數依次按:
(3)每一個數存放的行比前一個數的行數减1,列數加1.
(4)如果上一個數的行數為1,則下一個數的行數為5,列數加1。
(5)當上一個數的列數為5時,下一個數的列數應為1,行數减1.
(6)如果按上面步驟確定的比特置上已經有數(本題中不為0),或者上一個數是第1行第5列時,則把下一個數放在上一個數的下面。
程序源碼:
#include<stdio.h>
#include<stdlib.h>
int main()
{
system("COLOR FD"); //改變字體背景顏色
int i, j, a[6][6] = { 0 };
int x = 1, y = 3; //1的比特置
for (i = 1; i <= 25; i++)
{
a[x][y] = i;
if (1 == x && 5 == y)
//上一個數是第一行第五列時,則把下一個數放在它的下面
{
x += 1;
continue; //結束本次循環
}
if (1 == x)
x = 5; //當上一個數是第一行時,下一個數是第五行。
else
x--; //否則行數减一。
if (5 == y)
y = 1; //當上一個數是第五列時,下一個數是第一列。
else
y++; //否則列數加一。
if (a[x][y] != 0) //判斷經過上面步驟確定的比特置是否有非零數。
{
x = x + 2; //條件為真行數加二,列數减一。
y = y - 1;
}
}
for (i = 1; i < 6; i++) //輸出二維數組
{
for (j = 1; j < 6; j++)
printf("%4d", a[i][j]);
printf("\n");
}
return 0;
}
運行結果:
舉一反三:
在本程序的基礎上編程實現輸入n階幻方,n的值由用戶從鍵盤中輸入。
版權聲明
本文為[同學〖森〗]所創,轉載請帶上原文鏈接,感謝
https://cht.chowdera.com/2022/01/202201270930090748.html
邊欄推薦
猜你喜歡
隨機推薦
- MySQL-5.7.36安裝遇到坑之後的整理,刻入骨髓的1045
- leader epoch
- Wireshark實驗四:UDP
- UiPath的許可查詢、激活、遷移和導出
- 遞歸以及for循環裏async 和 await 的用法
- 大人重疾險想保終身重疾,買哪個產品最合適啊?
- php使用openssl_encrypt和openssl_decrypt進行AES加密解密
- CV in Transformer學習筆記(持續更新)
- ctf,show msic入門
- 網絡文件系統
- 《滲透測試具體流程》
- flask入門教程(7) - 會話
- 【電子技術】什麼是循環冗餘碼CRC
- Anconda 學習
- 基於kubernetes的Prometheus監控mysql
- 什麼是光纖隔離器?
- LeetCode 7.整數反轉
- C 練習實例90
- @Inherit注解與注解的繼承
- 小程序雲開發——雲數據庫的增删查改(2)
- 五、OpenGL ES 三維圖形的初探
- 登錄令牌JWT — JSON WEB TOKEN
- 兩種方法,word文件轉換成PDF文件
- 有符號數(signed) 和 無符號數(unsigned)
- 道與術
- 少兒消費型重疾目前那個比較好一點?有沒有推薦的產品
- 猪器官又立功了!移植轉基因猪腎給腦死亡病人,23分鐘後成功產生尿液
- [機器學習算法面試題] 一.准確率Accuracy的局限性
- Flink(50):Flink之綜合練習(二)
- String類常用方法示例
- 各大直播平臺主播的收入計算方式是怎樣的?
- 工程師必須知道的幾個原則
- 細品事務機制(一)
- 邏輯樹分析方法:如何將複雜問題變簡單?
- 數組和鏈錶插入效率比較
- 李宏毅《機器學習》| 神經網絡訓練不起來怎麼辦(下)
- 2021年P氣瓶充裝考試及P氣瓶充裝試題及解析
- 2021年G2電站鍋爐司爐考試題庫及G2電站鍋爐司爐考試試卷
- jangow靶機滲透
- 『淺入淺出』MySQL 和 InnoDB