有100階樓梯,從底往上爬,每次爬1階或2階,編算法說明共有多少走法


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
	}
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM