递归函数

This commit is contained in:
Sanchime 2022-02-18 21:12:27 +08:00
parent 4e9b24a0f1
commit 574abdefce
1 changed files with 29 additions and 1 deletions

View File

@ -6,4 +6,32 @@ module RecurseFunction
// F#,,使rec
//
let rec fact n = if n = 0 then 1 else n * fact n - 1
let rec fact n =
if n = 0 then
1
else
n * fact n - 1
//
//
// 如上:if n = 0 then 1
// n0,1
//
// ,
// 0! = 1
// 1! = 1 * 1
// 2! = 2 * 1 -> 2 * (2 - 1)
// 3! = 3 * 2 * 1 -> 3 * (3 - 1) * (3 - 1 - 1)
//
// 在1到n之间的自然数中,已知0的阶乘有确切结果是1,而其他结果是n * (n - 1) * ((n - 1) - 1) * ...
// 我们可以观察到n - 1的计算是重复的,因为每一个n都是上一个值 - 1
// 可以得出1! = 1 * 1, 2! = 2 * 1!, 3! = 3 * 2!, 4! = 4 * 3!
// 所以我们可以将其归纳为n = 0 -> 1 and n * (n - 1)!
// ,()
// ,
// ,使fact_f
let rec fact_f = function
| 0 -> 1
| n -> n * fact n - 1