算法思想 | 枚举 之 百元买百鸡问题

2021-09-24    286   

背景

枚举算是算法思想里最简单的一种思想了,只需将所有情况都列出来,找到答案即可。

问题

有公鸡、母鸡、小鸡三种,公鸡4元、母鸡3元、小鸡0.5元,手上有K元钱,K为正整数,需要买K只鸡,请列出所有可能的情况。

代码

// 算法思想-枚举
func EnumAlgo(nums int) [][]int {
    // 公鸡价格
    price1 := 4
    // 母鸡价格
    price2 := 3
    // 小鸡价格
    price3 := 0.5

    result := [][]int{}

    for i := 0; i <= nums; i++ {
        for j := 0; j <= nums-i; j++ {
            for k := 0; k <= nums-i-j; k++ {
                total := float64(i*price1) + float64(j*price2) + float64(k)*price3
                if float64(nums) == total {
                    result = append(result, []int{i, j, k})
                }
            }
        }
    }
    return result
}