经典算法_1_ 百鸡问题

问题:用n元钱去买100只鸡,其中母鸡5元一只,公鸡3元一只, 小鸡3只一元,有哪几种购买组合


解决思路:  首先要列出方程式,假设购买了母鸡x只,公鸡y只,小鸡z只,列出下面2个方程式

                   1.  x + y + z = 100

                    2.  5x + 3y + z/3 = n

                  综合以上两个表达式得出: 14x + 8y =3n-100 ,这是个二元一次方程,x ,y都是不大于100的整数,

                  利用枚举算法可以分别求出x, y ,z的值

以下是用ruby实现的代码:

puts("Please input the amount:")
n = gets()

for x in 0..100
  for y in 0..100
	if (14*x + 8*y) <= 3*n.to_i - 100 then
	  puts("x = #{x}, y = #{y}, z = #{100-x-y}")
    else
      break
    end
  end
end

输入: 40

运行结果:

x = 0, y = 0, z = 100
x = 0, y = 1, z = 99
x = 0, y = 2, z = 98
x = 1, y = 0, z = 99



                 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值