乙個關於遞迴的演算法。

2021-08-31 10:36:13 字數 1003 閱讀 1099

從鍵盤輸入乙個整數(

1~20)則以該數字為矩陣的大小,把1,2,3…n*n 的數字按照順時針螺旋的形式填入其中。

例如:輸入數字2,則程式輸出:

1 24 3輸入數字3,則程式輸出:

1 2 3

8 9 4

7 6 5

輸入數字4,則程式輸出:

1  2   3   4

12  13  14  5

11  16  15  6

10   9  8   7

分析:用二維陣列解決,從對角線分析,找出規律。1,1+4(n-1),1+4*2*(n-2),……

根據n確定可把該二維陣列劃分成多少環,也就是說,第一環的第乙個元素為1,第二環的第乙個元素為1+4(n-1),……

寫演算法,先確定第一環的演算法,寫在乙個方法中,讓該方法同時適應第二環,第三環,……

源**如下:

package com.lzw.cnum;

public class cirnum

// 當輸入的n>1時,用該方法填充第一環。

public void lauchrect(int index, int first)

// 處理最後一列。

for (; i < n - 1 - index; i++)

// 處理最後一行。

for (; j - index > 0; j--)

// 處理第一列。

for (; i - index > 0; i--)

//如果n是奇數,確定該矩陣中中間元素

。 if (n % 2 != 0)

// 遞迴。

if (index < this.circle) } public void display(int n) system.out.println(); } } public static void main(string args) }

乙個遞迴演算法

要求實現1,1,2,3,5,8,13,21,這樣乙個序列。分析一下輸出結果 發現後乙個數字是前2個數字的和。遞迴演算法如下 public static int recursion int i if i 0 return 0 else if i 0 i 2 return 1 else return r...

Treeview的乙個遞迴演算法

option explicit private sub form load with treeview1 nodes.add parent1 test1 nodes.add parent1 tvwchild,child1 test ch1 nodes.add parent1 tvwchild,chi...

乙個簡單的遞迴演算法的思考

一 遞迴演算法的概述 遞迴演算法的描述 把乙個大規模的問題劃分為乙個個小規模的同類問題的子問題。遞迴演算法的特徵 1 在函式中呼叫其本身 2 必須有乙個明確的遞迴出口 3 遞迴結果的輸出是乙個堆疊結構,最後的結果最先輸出,最初的結果最後輸出。二 乙個簡單的遞迴演算法的思考 思考一 遞迴語句最後的輸出...