Go 语言递归函数

递归,就是在运行的过程中调用自己。 一个函数调用自己,就叫做递归函数。
构成递归需具备的条件:

1.子问题须与原始问题为同样的事,且更为简单。
2.不能无限制地调用本身,须有个出口,化简为非递归状况处理。

数字阶乘

一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,并且0的阶乘为1。自然数n的阶乘写作n!。1808年,基斯顿·卡曼引进这个表示法。

  1. package main
  2. import "fmt"
  3. func factorial(i int) int {
  4. if i <= 1 {
  5. return 1
  6. }
  7. return i * factorial(i-1)
  8. }
  9. func main() {
  10. var i int = 7
  11. fmt.Printf("Factorial of %d is %d\n", i, factorial(i))
  12. }
  13. 输出结果:
  14. Factorial of 7 is 5040