换零钱

 换零钱总的思路就是包括某个币值的和不包括的,然后递归。

用递归的思路不需要考虑太多的细节,对于这种加的递归,我们简单来看就是一个递归树的执行,也就是说两者不可能是同时的,所以不用考虑冲突的问题。

var i []int

func main() {
    i = []int{1, 2, 3, 5, 10}
    println(fff(2, 5))
}

func fff(a, n int) int {
    if a == 0 {
        return 1
    }
    if a < 0 || n == 0 {
        return 0
    }
    return fff(a, n - 1) + fff(a - i[n - 1], n)
}

end

猜你喜欢

转载自www.cnblogs.com/CherryTab/p/12397053.html
今日推荐