當前位置:網站首頁>【C語言典例】——day3:設計魔方陣(數組)

【C語言典例】——day3:設計魔方陣(數組)

2022-01-27 09:30:09 同學〖森〗

※※※大家好!我是同學〖森〗,一名計算機愛好者,今天讓我們進入刷題模式。若有錯誤,請多多指教。

 點贊  收藏 留言 都是我創作的最大的動力!


目錄

 魔方陣(magic matrix)

題目描述:

 問題分析:

程序源碼:

運行結果:

舉一反三: 


 

 魔方陣(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

隨機推薦