Go语言百钱买百鸡问题

Go语言百钱买百鸡问题_第1张图片

问题

今有鸡翁一,值钱伍;鸡母一,值钱三;鸡鶵三,值钱一。凡百钱买鸡百只,问鸡翁、母、鶵各几何?(鸡公一个五钱,母鸡一个三钱,小鸡三个一钱,用一百钱买一百只鸡,如何搭配)

普通解

设公鸡 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-公鸡母鸡数量。

判断条件

  1. 公鸡母鸡小鸡合计价钱为 100
  2. 小鸡的数量必须为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只\n", x, y, 100-x-y)
			}
		}
	}
}
公鸡0只,母鸡25只,小鸡75只
公鸡4只,母鸡18只,小鸡78只
公鸡8只,母鸡11只,小鸡81只
公鸡12只,母鸡4只,小鸡84

你可能感兴趣的:(Let's,Golang)