遞迴的概念和例題。

2021-08-13 23:08:01 字數 1869 閱讀 9039

###16遞迴概念和注意事項

* a:遞迴概念和注意事項

* a: 遞迴概念

* 遞迴,指在當前方法內呼叫自己的這種現象

* 遞迴分為兩種,直接遞迴和間接遞迴

* 直接遞迴稱為方法自身呼叫自己。間接遞迴可以a方法呼叫b方法,b方法呼叫c方法,c方法呼叫a方法

* b: 注意事項

* 遞迴一定要有出口, 必須可以讓程式停下

* 遞迴次數不能過多

* 構造方法,禁止遞迴

###17遞迴求和計算

* a: 遞迴求和計算

* a: 題目分析

* 1+2+3+...+(n-1)+n:求1到n的和

* 總結規律:1到n的和等於1到(n-1)的和再加n

* getsum(n-1)+ n

* 遞迴出口:getsum(1) return 1;

* b: 案例**

/** 方法的遞迴呼叫

* 方法自己呼叫自己

* 適合於,方法中運算的主體不變,但是執行的時候,參與執行的方法引數會變化

* 注意:

* 遞迴一定要有出口, 必須可以讓程式停下

* 遞迴次數不能過多

* 構造方法,禁止遞迴

*/public class diguidemo

/** 計算 1+2+3+100和 = 5050

* 計算規律:

* n+(n-1)+(n-2)

* 100+(100-1)+(99-1)+...1

*/public static int getsum(int n)

}###18遞迴求階乘

* a: 遞迴求和計算

* a: 題目分析

* 5!=5*4*3*2*1

* =5*4!

* 4!=4*3!

* 3!=3*2!

* 2!=2*1!

* 1!=1

* n!=n*(n-1)!

* 遞迴出口:n*getjiecheng(n-1): getjiecheng(1) return 1;

* b: 案例**

/** 方法的遞迴呼叫

* 方法自己呼叫自己

* 適合於,方法中運算的主體不變,但是執行的時候,參與執行的方法引數會變化

* 注意:

* 遞迴一定要有出口, 必須可以讓程式停下

* 遞迴次數不能過多

* 構造方法,禁止遞迴

*/public class diguidemo

/* * 計算階乘 5!

* 5*4*3*2*1

*/public static int getjiecheng(int n)

}###19遞迴計算斐波那契數列

* a: 遞迴計算斐波那契數列

* a:題目分析

* 1 1 2 3 5 8 13 21

* 從第三項開始,後面的每一項都等於前面兩項的和,第一項和第二項的值為1,作為程式的出口

* b: 案例**

/** 方法的遞迴呼叫

* 方法自己呼叫自己

* 適合於,方法中運算的主體不變,但是執行的時候,參與執行的方法引數會變化

* 注意:

* 遞迴一定要有出口, 必須可以讓程式停下

* 遞迴次數不能過多

* 構造方法,禁止遞迴

*/public class diguidemo

/** 方法遞迴,計算斐波那契數列

* */

public static int getfbnq(int month)

}

遞迴 幾個例題

構造遞迴樹來解決問題 從 1 n 這 n 個整數中隨機選取任意多個,輸出所有可能的選擇方案。輸入格式 輸入乙個整數n。輸出格式 每行輸出一種方案。同一行內的數必須公升序排列,相鄰兩個數用恰好1個空格隔開。對於沒有選任何數的方案,輸出空行。本題有自定義校驗器 spj 各行 不同方案 之間的順序任意。資...

遞迴的概念 函式遞迴過程

直接或間接地呼叫自身的演算法稱為遞迴演算法。用函式自身給出定義的函式稱為遞迴函式。使用遞迴技術往往會使 更簡潔,使演算法的描述更清晰且容易理解。例 1 階乘函式 階乘函式遞迴的定義為 當n 0時,n 1,這是這個函式的初始條件,是非遞迴定義的,是此遞迴函式的退出條件。這個遞迴函式在執行時,會不斷的呼...

C 經典例題(基礎概念)

1 在類作用域中能夠通過直接使用該類的 任何 成員名進行訪問 2 小數型別與浮點型別都可以表示小數,但小數型別比浮點型別精度低 3 能作為c 程式的基本單位是 語句 4 引用型別的主要4種 類型別,陣列型別,介面型別,委託型別 5 載入窗體時觸發的事件為 load 6 在介面的成員中,不能包含 常量...