前言
上一篇文章python实现百钱百鸡问题,用for循环实现了百钱百鸡的经典问题,文末简单说了下优化版的大体思路,这篇文章实现下。
功能实现
要求根据用户输入的购买钱数、公鸡、母鸡和小鸡的数量(小鸡按照3只作为一个整体来售卖,公鸡和母鸡都是按照一只来售卖),所买鸡的总数为100,给用户计算出所有可行方案,当打印出所有可行方案后,用户自行判断是否接着操作。
解答思路
1:使用input()语句获取用户输入的信息
2:获取用户信息后,利用math.ceil()计算出各种鸡能够购买的最大数量+1,这里加1是因为后面需要用到range(start,end)方法,其中start取得到,end取不到。
3:使用range()方法,在指定购买数量范围内,遍历出各种鸡可以买的数量;小鸡的数量只需要用
100-公鸡数量-母鸡数量
4:如果公鸡的价钱、母鸡的价钱和小鸡的价钱总和是用户所带的钱数,则打印出所有可行方案(小鸡的价钱是按照三只一个整体来计算价钱的,因此是小鸡的总价钱=(小鸡的总数/3)*三只小鸡的价钱
5:利用while…continue和if判断语句,实现用户自主判断是否接着进行操作。
程序实现
#写进循环,采用while循环
import math
# 函数plan()
def plan():
while True:
#获取用户输入的价钱数据
money = int(input('请输入您需要购买的总价钱:'))
cock = int(input('请输入一只公鸡多少钱:'))
hen = int(input('请输入一只母鸡多少钱:'))
chick = int(input('请输入三只小鸡多少钱:'))
#计算出公鸡和母鸡能够购买的最大数量+1
cock_end = math.ceil(money/cock)
hen_end = math.ceil(money/hen)
#for服务器托管网循环遍历
for cock_num in range(0,cock_end):
for hen_num in range(0,hen_end):
chick_num = 100-cock_num-hen服务器托管网_num
#判断方案的可行性
if cock_num*cock + hen_num*hen + (chick_num/3)*chick == money:
print('公鸡: %d只,母鸡: %d只,小鸡: %d只' % (cock_num , hen_num, chick_num))
ans = input('请问您还需要进行操作吗?(y/n)')
#判断是否接着进行操作
if ans=='y':
continue
else:
break
plan()
最终效果
总结
此程序中用到的知识点比较简单,主要就是for循环进行各种鸡的购买数量取值范围的遍历;while语句实现用户自主判断;math.ceil()函数向上取整的应用;range()方法在指定范围内进行遍历。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
什么是自然语言处理(NLP) 自然语言处理(Natural Language Processing,NLP)是计算机科学和人工智能领域中的一个重要分支。它研究如何让计算机去理解、处理和生成自然语言,使计算机能够像人一样读、写、听和说自然语言。 NLP主要涉及文…