實作遞迴(2) – sum(n)
歸納:
sum(n)= \begin{cases} 0,\ where\ n = 0\\ n + sum(n - 1),\ where\ n > 0 \end{cases}
Golang
遞迴版本:
package main
import "fmt"
//遞迴版本sum(n)
func sum(n int) int {
if n == 0 {
return 0
}
return n + sum(n-1)
}
func main() {
fmt.Println("input n:")
var n int
fmt.Scanln(&n)
fmt.Printf("sum(%d) = %d\n", n, sum(n))
}
改寫成迭代版本:
//迭代版本sum(n)
func sum(n int) int {
result := 0
for i := 1; i <= n; i++ {
result += i
}
return result
}
Filed under: 演算法 - @ 2021 年 6 月 25 日 下午 1:23