Ruby 程式語言中遞迴是如何工作的?
直接或間接呼叫自己的函式被稱為遞迴函式,將相應函式稱為遞迴函式。遞迴簡化了流程,它能顯著減少編譯時間。
我們將藉助一個非常簡單的示例來理解 Ruby 中的遞迴概念。
假設給我們一個數組,我們希望列印陣列所有元素的乘積,為此,我們有兩個選擇,可以迴圈迭代地執行,也可以遞迴地執行。
示例 1
讓我們首先以迴圈迭代的方式來做。考慮下面顯示的程式碼,其中每個元素的乘積由函式返回。
# Iterative program to print multiplication of array elements def iterativeMultiplication(arr) mul = 1 arr.each do |num| mul *= num end puts mul end iterativeMultiplication([1, 2, 3, 4, 5])
輸出
將生成以下輸出 −
120
示例 2
現在讓我們以遞迴的方式來做。考慮下面顯示的遞迴程式碼。
# Recursive program to print multiplication of array elements def recursiveMultiplication(arr) return 1 if arr.length == 0 arr[0] * recursiveMultiplication(arr[1..-1]) end puts recursiveMultiplication([1,2,3,4,5])
輸出
將生成以下輸出 −
120
示例 3
現在我們來看另一個示例,這是一個非常著名的遞迴問題。問題在於列印著名的第 n 個斐波那契數。
考慮以下所示的程式碼 −
# print fibonacci nth number in ruby def printFib( n ) return n if ( 0..1 ).include? n ( printFib( n - 1 ) + printFib( n - 2 ) ) end puts printFib( 5 )
輸出
將生成以下輸出 −
5
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP