Go语言百钱买百鸡问题语言百钱买百鸡问题
问题问题
今有鸡翁一,值钱伍;鸡母一,值钱三;鸡鶵三,值钱一。凡百钱买鸡百只,问鸡翁、母、鶵各几何?(鸡公一个五钱,母鸡
一个三钱,小鸡三个一钱,用一百钱买一百只鸡,如何搭配)
普通解普通解
设公鸡 x 只,母鸡 y 只,那么 小鸡 100-x-y 只。得到方程组:
① x + y + (100-x-y) = 100
② 5x + 3y + (100-x-y)/3 = 100
这是一个不定方程,有多种解…这里就不解了,大概看个意思
使用使用 Go 来排列组合求解来排列组合求解
假设买了 1 只公鸡,1只母鸡,那么小鸡 100-2=98 只,计算一下金钱 1 x 5 + 1 x 3 + 98/3 ≠ 100,那么排除这个结果。
假设买了 1 只公鸡,2只母鸡,那么小鸡 100-3=97 只,计算一下金钱 1 x 5 + 1 x 3 + 98/3 ≠ 100,那么排除这个结果。
……
全部买公鸡,最多能买20只,全部买母鸡,最多能买33只,那么小鸡最多能买 100-公鸡母鸡数量。
判断条件判断条件:
公鸡母鸡小鸡合计价钱为 100
小鸡的数量必须为3的倍数
func buyChicken(){
// 公鸡 x 母鸡 y
for x:=0;x<=20;x++{
for y:=0;y<33;y++{
if (x*5 + y*3 + ((100-x-y)/3)) == 100 && ((100-x-y)%3 == 0){
fmt.Printf("公鸡%d只,母鸡%d只,小鸡%d只", x, y, 100-x-y)
}
}
}
}
公鸡0只,母鸡25只,小鸡75只
公鸡4只,母鸡18只,小鸡78只
公鸡8只,母鸡11只,小鸡81只
公鸡12只,母鸡4只,小鸡84只
作者:庸了个白
评论10