C 製作乙個N乘N的螺旋陣列

2021-09-21 18:22:24 字數 841 閱讀 1030

螺旋陣列顧名思義就是乙個旋轉的陣列,陣列大小由小到大順時針縮小到最後一位。

例如五乘五的螺旋陣列如下,

其實從上面的例子可以看出一點規律了,數字從左到右遞增,當遞增到右側最後一位陣列的時候就從上往下遞增接著遞增到底部最後一位的時候,就從右往左遞增,遞增到左側最後一位陣列的時候就又從下往上遞增,然後遞增陣列逐次減一。經過這樣的反覆迴圈即可得出上圖圖形。

**如下

#include "pch.h"

#include

#define n

10//為巨集定義命令確保矩形陣列的最大值

using namespace std;

void

main()

else

j--;for

(i = s +

1; i < n - s; i++

) i--

;for

(j = n - s -

2; j >= s; j--

) j++

;for

(i = n - s -

2; i >= s +

1; i--

) i++

; s++;}

for(i =

0; i < n; i++)}

cout << endl;}}

}

結果如下

乙個陣列儲存了N個結構

乙個陣列儲存了n個結構,每個結構儲存了乙個座標,結構間的座標都不相同,請問如何找到指定座標的結構 除了遍歷整個陣列,是否有更好的辦法 要麼預先排序,二分查詢。要麼雜湊。hash的話,座標 x,y 你可以當做乙個2位數,寫乙個雜湊函式,把 x,y 直接轉成 x,y 作為key,預設用string比較。...

給定乙個整數N,那麼N的階乘N!末尾有多少個0呢?

題目詳情 給定乙個整數n,那麼n的階乘n!末尾有多少個0呢?例如 n 10,n!3 628 800,n!的末尾有兩個0。題目分析 看到題第一想法是將n的階乘求出來然後取計算,但是再一想又會出現資料溢位的問題。所以就想到了另外一種辦法。因為 n!1 2 3 4 5 n 所以我們可以採用分解質因數來解決...

給定乙個整數N,那麼N的階乘N!末尾有多少個零呢?

題目 給定乙個整數n,那麼n的階乘n!末尾有多少個零呢?末尾有幾個零?如果我們從哪些數相乘可以的出10,這個角度來解決這個問題,這就會變成簡單。對質因數進行分解由於10 2 5,即每一對2和5就可以產生乙個10,如果我們求出n 中,2和5的分別的次方數,假設為x,z,取決於兩個數中最小的那個數,於是...