自己寫的迴旋數演算法

2021-05-23 02:38:57 字數 600 閱讀 7090

貌似有人會看,就貼一下。這個演算法只用了乙個while迴圈就可以全部複製,效率上應該比那些很多for迴圈的好些。

所謂迴旋數,就是下面這樣

3的迴旋數

13 12 11 10 9  

//迴旋矩陣

public static void main(string args) }

/***

* 回形賦值,重點是控制賦值時候x,y的轉換。分四種情況,左到右賦值,上到下賦值,

* 右到左賦值,下到上賦值。有點是只要一次賦值,沒有太多的for迴圈,

* * @param n

*/public void huixuan(int n)else

break;

case 2:

if(con == rowcon) else i++;

break;

case 3:

if(con == lincon) else j--;

break;

case 4:

if(con == rowcon) else i--;

break;}}

for (i =0 ;i < n;i++){

for(j=0;j

迴旋數的求解

迴旋數就是從中間的1開始然後圍繞著這個1,按自然數的增長形式迴旋1,如 1 解決的的思路 a 首先得到這個數的基數 即每一環開始的數 b 然後得到其座標所屬第幾排,c 再次計算其位於這一排的位置,d 最後算出結果。2 針對個步驟所需要的程式設計指南 a 需要知道他前面的總數,設定了乙個遞迴函式來求出...

程序排程演算法實現(自己寫的)

資料 程序,佇列結構 處理流程 1 初始化 程序佇列結構 包括 就緒佇列,等待佇列,執行佇列 等必要的資料結構 init 2 進入無限迴圈,反覆排程佇列 define max 5 include include int total time 20 int time slice 3 typedef s...

LeetCode 2 兩數相加(自己寫的)

給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。示例 輸入 2 4 3 5 6 4 輸出 ...