n=1時為1,即f(n)=1
n=2時,第一步是一步,第二步也是一步這種情況,還有第一步是兩步是這種,所有共有2種,即f(2)=2
n>2時,f(n)=f(n-1)+f(n-2)
go實現
package main
import "fmt"
func main() {
c := step(10)
fmt.Println(c)
}
func step(n int) int {
if n == 1 {
return 1
} else if n == 2 {
return 2
} else {
return step(n-1) + step(n-2)
}
}
思路先從前邊一個開始,后面直接遞歸
這算法有點像1+2+3+……+100
go實現
package main
import "fmt"
func main() {
c := add(100)
fmt.Println(c)
}
func add(n int) int {
if n >= 2 {
return n + add(n-1)
} else {
return n
}
}