函式(方法) 遞迴

2022-09-28 22:24:35 字數 2060 閱讀 7503

封裝**邏輯,將某個業務功能的整體實現放到一起,以方便其他程式設計師呼叫,實現**復用,減少**冗餘。

①、函式宣告四要素:修飾符 返回值 方法名 (引數列表)。 public 公共的、誰都可以呼叫;static 靜態的,通過類名呼叫。

②、返回值:是八大基本資料型別(byte、short、int、long、float、double、char、boolean、string),還可以是void(void表示沒有返回值)。

③、執行過程中,將實際引數的值複製乙份給形式引數與執行,如果有返回值,函式執行完畢後將返回值賦值給接收變數。

①、如果返回值為void,則函式體內可以沒有return。

②、如果返回值是其他型別,方法體內必須要有return,而且return後面要跟乙個變數、表示式、或值,而且他們的型別要與函式宣告的返回值一致,若不一致,要麼可以自動提公升資料型別,要麼在函式體內進行強制轉換。

③、如舉例:

public static int max(short num1,short num2)
函式體內呼叫自身函式

①、某些數學問題(猴子粉桃、階乘)

②、io流遍歷資料夾以及子資料夾

③、迴圈顯示某些選單的時候

①、邊界條件(初識狀態),最簡單的一種狀態,遞迴終止的條件。

②、遞推公式,相鄰兩項之間的關係。

③、注意:當遞迴呼叫次數比較多的時候,占用記憶體和系統資源會非常大,所以在企業開發中能不用遞迴盡量不用遞迴!!

​ 1、猴子分桃,有一堆桃子,第一天,某只猴子偷吃了一半多一顆,第二天又有某只猴子偷吃了剩下的桃子中的一半多 一顆,……,等到第7天的時候,有只猴子發現只剩下乙隻桃子了,問這堆桃子最開始有多少顆?

​ 模擬遞推公式:an=an-1+2, a1=1 1 3 5 7 9

package day09;

/*** @filename : tao.j**a

* @description : todo

* @author : yangzhihong

* @date : 2023年12月23日-下午4:05:57*/

public class tao

public static int f(int n) else

}}

​ 2、迴圈顯示選單

package day09;

import j**a.util.scanner;

/*** @filename : tao.j**a

* @description : todo

* @author : yangzhihong

* @date : 2023年12月23日-下午4:05:57*/

public class tao

public static void menu()

menu();// 遞迴呼叫,方法體內呼叫自身方法

}}

​ 3、遞迴求階乘 a ! = ?

package day09;

import j**a.util.scanner;

/*** @filename : tao.j**a

* @description : todo

* @author : yangzhihong

* @date : 2023年12月23日-下午4:05:57*/

public class tao

public static long jc(int n)

return n * jc(n-1); // 遞迴呼叫

}}

遞迴 函式的call apply bind方法

遞迴 函式自己呼叫自己 應用 0 100內的求和 0 100求和 function sum s else console.log sum 0 函式中的arguments.callee和sum.prototype.constructor均指向函式本身。函式的call方法 call是function自帶...

19 查詢元素函式(遞迴方法)

題目 編寫乙個模板遞迴函式,確定元素 x 是否屬於陣列a 0 n 1 思路 題目中沒有說陣列有序,那麼預設為無序陣列,應該用線性查詢。同時是遞迴的,就應該從頭或尾乙個乙個比較,相等時返回找到,否則遞迴呼叫函式,傳入引數是陣列,並且元素個數少乙個。函式退出的條件有兩個 1.當由元素個數小於 0 時,說...

遞迴非遞迴寫函式

2.編寫乙個函式實現n k,使用遞迴實現 分析 n的k次 n n n n n k個n 用遞迴的思想來講,就等於n n的 k 1 次方 include include pragma waring disable 4996 int fun int n,int k int main 3.寫乙個遞迴函式di...