有乙個很無聊的問題,就是1-9寫成3*3形式,讓橫豎斜和相等。
今天無聊就改了乙個程式,共得到8種結果。
276951438分割
294753618分割
438951276分割
492357816分割
618753294分割
672159834分割
816357492分割
834159672分割
using system;
using system.collections.generic;
using system.componentmodel;
using system.data;
using system.drawing;
using system.linq;
using system.text;
using system.threading.tasks;
using system.windows.forms;
namespace _3階幻方
private
static
void
printarray
(int
array)
console.
writeline()
;}//判斷乙個陣列內元素是否降序排列
private
static
bool
isdesc
(int
array)
}return
true;}
// 找到下一組排列
private
static
void
findnextarray
(int
array)
}//2.從後向前找:找到第一組後數大於前數,以後數字置為signer
int signer = array.length -1;
for(
int i = array.length -
1; i >
0; i--)}
//3.從signer向後找:找到大於且最接近於array[signer-1]的數array[t]
int t = signer;
for(
int i = signer; i < array.length; i++)}
//4.將找到的array[t]和array[signer-1]互換
int temp = array[t]
; array[t]
= array[signer -1]
; array[signer -1]
= temp;
//5.為signer之後的元素公升序排序
for(
int i = signer; i < array.length; i++)}
}}private
void
button1_click
(object sender,
eventargs e)
;//1.複製乙個新陣列:修改時在臨時陣列中修改
int[
] temp =
newint
[array.length]
;for
(int i =
0; i < array.length; i++
)//2.將新陣列公升序排列
int itemp;
for(
int i =
0; i < temp.length; i++)}
/* for (int i = 0; i < array.length; i++)
textbox1.text = textbox1.text + "分割";
*/while(!
isdesc
(temp)
) textbox1.text = textbox1.text +
"分割";}
}}private
void
form1_load
(object sender,
eventargs e)
}}
C語言的N階幻方
關於c語言的n階幻方問題 問題描述 所謂 n 階幻方是 1,2,n2 的方陣排列,且每行 每列和每條對角線上的和都相等。問題舉例 編寫程式列印 5x5 的幻方矩陣 17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9 現依...
輸入乙個奇數n,構造並輸出乙個n階等和幻方
輸入乙個奇數n,構造並輸出乙個n階等和幻方,即每一行每一列和兩對角線上的n個數的和相等 如當n 9時,有 47 58 69 80 1 12 23 34 45 57 68 79 9 11 22 33 44 46 67 78 8 10 21 32 43 54 56 77 7 18 20 31 42 53...
奇數階幻方的經典方法 羅伯法
於 所謂 幻方,也教縱橫圖,就是在n n的方陣中放入1到n 2個自然數 在一定的布局下,其各行 各列和兩條對角線上的數字之和正好都相等。這個和數就叫做 幻方常數 或幻和。構造幻方的方法 奇數階幻方,也就是3階 5階 7階 幻方,那麼如何構造這樣的幻方呢?我們可以採取羅伯法 也叫連續擺數法 其法則如下...