輸出乙個順時遞增資料的N階矩陣

2021-08-09 13:47:26 字數 1766 閱讀 2988

注意:這題雖然實現原理簡單,但是非常非常容易寫錯。本人也除錯了好一陣子,太容易寫錯了。

如果要求面試中徒手寫出bug free的**,除非事先很熟悉不然真的很容易寫錯。

輸出乙個n階矩陣

比如輸入1

輸出輸入2

輸出1 2

4 3輸入 3

輸出1 2 3

8 9 4

7 6 5

**如下

#define  _crt_secure_no_warnings  

#include #include #include #define max_order 255

int array[max_order][max_order] = ;

int _tmain(int argc, tchar* argv, tchar * env)

for (--j, ++i; i < n && (array[i][j] == 0); i++)

for (--i, --j; j > m && (array[i][j] == 0); j--)

for (++j, --i; i > m && (array[i][j] == 0); i--)

n--;

m++;

} // print the structure of the n-order matrix.

printf("the %d-order matrix is:\n", num);

for (i = 0; i < num; i++)

return 0;

}

輸出結果。

2)以上題目進行變換,可以從中間旋轉出來,例如

輸入3輸出

9 8 7

2 1 6

3 4 5

修改後的**。

擴充套件,在b站上看到這題的乙個擴充套件,先將題目記錄下來,後續研究。

輸入乙個奇數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...

流式輸出乙個矩陣所有子矩陣

行列數 var m 5,n 6 子矩陣行列數 var r 3,d 3 矩陣內數值最大值 var maxnumber 16 流式序列,從0 m這m 1個數中不重複取出有序的n個數 param m param n returns function subarrayindex m,n while true...

輸入乙個正整數n,輸出n 的值。

輸入乙個正整數 n nn 輸出 n n n 的值。其中n 1 2 3 nn 1 2 3 cdots n n 1 2 3 n演算法描述 n n n 可能很大,而計算機能表示的整數範圍有限,需要使用高精度計算的方法。使用乙個陣列 a aa 來表示乙個大整數 a aa a 0 a 0 a 0 表示 a a...