求九宮問題程式(C語言實現)

時間 2022-02-13 14:40:04

1樓:

九宮就是三階魔方陣

//分析:魔方陣有如下規律:

// 1:自然數1總是在方陣第一行當中一列上。

// 2:後續的自然數在當前數的右上方,

// 1)如果是在第一行則行數變為第n行列數加1 ;

// 2)如果是在最後一列,行數減1,列數為第1行。

// 3)如果後續的數所處位置已有數,則行數加1,列數不變。

巧填奇數階幻方(魔方陣)***2007-01-03 17:57 一、什麼叫幻方?

(通俗點說)把一些有規律的數填在縱橫格數都相等的正方形圖內,使每一行、每一列和每一條對角線上各個數之和都相等。這樣的方陣圖叫做幻方。

幻方又分為奇數階幻方和偶數階幻方。奇數階幻方是指橫行、豎列都是單數(即3、5、7、9……)的方陣圖。偶數階幻方是指橫行、豎列都是雙數(即4、6、8、10……)的方陣圖。

二、奇數階幻方的填法。

奇數階幻方中最簡便的一種就是三階幻方,又稱「九宮圖」。

平常我們遇到這類題都是用分析、分組、嘗試的方法推出,這種方法較麻煩,如果是五階幻方、七階幻方就更困難了。

有一種方法不僅能很快地填出三階幻方,還能很快地填出五階幻方、七階幻方、九階幻方……那就是「口訣法」

口 訣

「1」坐邊中間,斜著把數填;

出邊填對面,遇數往下旋;

出角僅一次,轉回下格間。

注意:(1)這裡的「1」,是指要填的這一列數中的第一個數。

(2)「1」坐邊中間,指第一個數要填在任何一邊的正中間的空格里。

(3)從1到2時,必須先向邊外斜(比如:第一個數填在上邊的正中間,填第二個數時,要向左上方或右上方斜),填後面的數時也要按照同樣的方向斜。

#include

using namespace std;

void main()

for(i=1;i<=n;i++)

for(j=1;j<=n;j++)

a[i][j]=0;

j=n/2+1;

a[1][j]=1;

for(k=2;k<=n*n;k++)

else

if(a[i][j]==0)

a[i][j]=k;

else

}for(i=1;i<=n;i++)}

C語言實現程式後臺執行,一定要C語言 可用dev C 不能用VC

c語言會被編譯器編譯成彙編,作業系統提供一個資源許可權的空間來讓其執行。這其中c語言的一些你看起來很簡單的操作如printf等都是有一個函式庫來支援的,這些函式庫實質上是作業系統提供一些api封裝後的樣子,這樣使用起來更加方便。不同的作業系統提供的api是有些不同的,這些有相應的lib來解決,你在c...

完整正確的C語言二叉樹程式,用c語言實現二叉樹的程式,可以輸入輸出和遍歷

include using namespace std class node node node getleft void setleft node l node getright void setright node r char getdata void setdata const int in...

急求c語言實現計算字串中子串出現的次數

朋友想念你 include include void main else p1 if p2 0 sum p2 str2 printf d sum getchar 希望這個能幫到你。加油吧少年 請放心使用,有問題的話請追問 滿意請及時採納,謝謝,採納後你將獲得5財富值。你的採納將是我繼續努力幫助他人的...