[アルゴリズム]再帰
3483 ワード
復帰(Recursion)
例
実施例(工場)
factorial(n)
殷n!n!n! 返すと言ってfactorial(2)
factorial(2)
×\times× 3 factorial(3)
factorial(2)
×\times× 3 ×\times× 4 factorial(3)
×\times× 4 factorial(4)
一般化
factorial(n-1)
×\times× n n/a.結論
factorial(n)
= factorial(n-1)
×\times× n
factorial(n)
関数はfactorial(n-1)
×\times× 返却のみn
n <= 1
の場合は1を返却します.(0!定義は1)特長
ex4!4!4!ここから積み上げ4×\times× f(3)f(3)f(3)4 ×\times× f(3)f(3)f(3)3 ×\times× f(2)f(2)f(2)4 ×\times× f(3)f(3)f(3)3 ×\times× f(2)f(2)f(2)2 ×\times× f(1)f(1)f(1)f(1)f(1)=1 f(1)=1 f(1)=1ここから4を減算×\times× f(3)f(3)f(3)3 ×\times× f(2)f(2)f(2)2 ×\times× 14 ×\times× f(3)f(3)f(3)3 ×\times× 24 ×\times× 6 === 24
Python
def factorial(n):
if n > 1:
return factorial(n-1) * n
else:
return 1
Swift
func factorial(_ n: Int) -> Int {
if n > 1 {
return factorial(n-1) * n
} else {
return 1
}
}
Reference
この問題について([アルゴリズム]再帰), 我々は、より多くの情報をここで見つけました https://velog.io/@yc1303/알고리즘-재귀テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol