//递归
package main
import "fmt"
func main() {
//使用递归来实现阶乘
jc1 :=factorial(10)
fmt.Println("使用递归来实现阶乘",jc1)
//通过循环来实现阶乘
jc2 := getMultiple(10)
fmt.Println("通过循环来实现阶乘",jc2)
}
//用递归的做法来实现阶乘
func factorial(n int) int {
if(n == 0){
return 1
}
return n*factorial(n-1)
}
//通过循环方式实现阶乘
func getMultiple(num int)(result int){
result = 1
for i := 1; i<=num ;i++{
result *=i
}
return result
}
//内存是堆和栈组成
//栈 先进后出
//堆 先进先出
//