//函数的递归调用
package main
import "fmt"
func main() {
sum(10)
}
func sum(i int) {
//var sum int
if i > 0 {
fmt.Println(i)
i--
sum(i)
}
}
函数的递归 实现100的和 错误代码示范,发现并没有累加
//函数的递归 实现100的和
package main
import "fmt"
func main() {
a := sum(10)
fmt.Println("求0-100的和", a)
}
func sum(i int) int {
var total int
if i > 0 {
i--
total += sum(i)
}
fmt.Println(total)
return total
}
正确的调用过程
//函数的递归 实现100的和
package main
import "fmt"
func main() {
a := sum(100)
fmt.Println("求0-100的和", a)
}
func sum(i int) int {
//递归过程 100 + 99 +98 + ... sum(i-1)
if i > 1 {
return i + sum(i-1)
} else {
return 1
}
}