使用python实现百钱百鸡问题
一、问题描述
使用python实现百钱百鸡问题:一只公鸡值五钱,一只母鸡值三钱,三只小鸡值一钱,现在要用百钱买百鸡,请问公鸡、母鸡、小鸡各多少只?
二、问题分析
用百钱如果只买公鸡,最多可以买20只,但题目要求买100只,由此可知,所买公鸡的数量在0~20之间。同理,母鸡的数量在0~33之间。把公鸡、母鸡和小鸡的数量分别设为cock、hen、chicken,则cock+hen+chicken=100,所以百钱买百鸡问题就转化成解不定方程组 cock+hen+chicken=100 5xcock+3xhen+chicken/3=100的问题
三、算法设计
用百钱如果只买公鸡,最多可以买20只,但题目要求买100只,根据问题分析可知,所买公鸡的数量在0~20之间。同理可得,母鸡的数量在0~33之间。把公鸡、母鸡和小鸡的数量分别设为cock、hen、chicken,则cock+hen+chicken=100,因此百钱买百鸡问题就转化成解不定方程组的问题
四、完整程序
#!/usr/bin/env python3 # -*- coding: utf-8 -*- if __name__ == "__main__": # cock表示公鸡数量,hen表示母鸡数量,chicken表示小鸡数量,总共100只 # 外层循环控制公鸡数量,取值范围为0~20 cock = 0 while cock <= 20: # 内层循环控制母鸡数量,取值范围为0~33 hen = 0 while hen <= 33: # 内层循环控制小鸡数量,取值范围为0~100 chicken = 0 while chicken <= 100: # 条件控制 if (5 * cock + 3 * hen + chicken / 3.0 == 100) and (cock + hen + chicken == 100): print("cock=%2d, hen=%2d, chicken=%2d " % (cock, hen, chicken)) chicken += 1 hen += 1 cock += 1
五、运行结果:
下一篇:
Java中“数组”的定义