首页 > 编程语言 >python实现百钱百鸡问题​

python实现百钱百鸡问题​

时间:2023-09-04 23:02:46浏览次数:28  
标签:母鸡 python 百钱 time 小鸡 chick 百鸡 hen cock

前言

百钱百鸡问题作为一个经典的数学问题,利用python实现,其思路也是比较简单的,主要就是利用for循环语句通过枚举法,根据题目条件确定解的大致范围,并对此范围内的所有可能的解进行逐一验证。


功能需求

一只公鸡值五钱,一只母鸡值三钱,三只小鸡值一钱。用百钱买百鸡,那么公鸡、母鸡和小鸡分别可以买多少只?

分析问题

首先可以定义三个变量cock、hen、chick分别代表公鸡、母鸡和小鸡,那么问题自然而然的就转换为数学问题:

cock+hen+chick = 100

cock*5+hen*3+chick/3 = 100


程序实现

#

import  time
start = time.time()
# start time
# 外层循环控制公鸡数量取值范围 1--20
for cock in range(0,21):
    # 内层循环控制母鸡的数量的取值范围 0--33
    for hen in range(0,34):
    # 最内层控制小鸡数量的取值范围  0--100
        for chick in range(0,101):
            if(cock + hen + chick == 100) and (cock * 5 + hen * 3 + chick/3 ==100):
                print("您可以购买的方案是:\n"+str(cock)+"只公鸡\n"+str(hen)+"只母鸡\n"+str(chick)+"只小鸡\n")
#结束时间
end = time.time()
print('此算法总耗时:',end-start)


运行效果

python实现百钱百鸡问题​_基础算法



提升需求

如果是需要用户输入所带的钱数以及公鸡、母鸡和小鸡的价格,然后给用户返回一些可行的方案应该如何解决呢?

思路:

1:将程序写入函数中

2:函数中通过input()函数来获取用户输入的所带的钱数以及公鸡、母鸡和小鸡的价格

3:通过相应的计算规则来制定数量关系,其中各个鸡的取值范围仍需要利用range()函数来实现,但是传入的参数需要进行整理,比如range(start,end),start参数可以是0,end参数可以利用python中的math模块中的向上取整函数math.ceil()来求出。

4:最后通过print语句,按照相应的格式输出。


标签:母鸡,python,百钱,time,小鸡,chick,百鸡,hen,cock
From: https://blog.51cto.com/u_15928170/7364958

相关文章

  • python DAY 2 #9.4
    赋值方法: 字符串拼接中间要加+号 python中的除法是浮点数除法整除是//  是向下取整,而不是向0取整  2**3代表2的3次方 类型转换方法,非输出语句中,字符串只能与字符串一起拼接 输入:input()默认类型是个str,需要强制转换为int输入多个数的方法:#......
  • Python 遍历字典的若干方法
    哈喽大家好,我是咸鱼我们知道字典是Python中最重要且最有用的内置数据结构之一,它们无处不在,是语言本身的基本组成部分我们可以使用字典来解决许多编程问题,那么今天我们就来看看如何在Python中遍历字典全文内容:https://realpython.com/iterate-through-dictionary-python/p......
  • python中文件的操作
    文件的基本操作1.我们目前能够操作哪些类型的文件:.txt没有后缀名的文件"""将来学了openpyxl模块将支持操作:word、Excel、ppt"""2.如何操作文件""" 三步法: 1.打开文件(关键字open) 2.读或者写 3.关闭文件"""文件的路径: 相对路径绝对路径......
  • 【python自动化】pytest系列(下)
    pytest系列文章一共有四篇,本文为第三篇。公众号:梦无矶的测试开发之路,回复pytest可以领取对应资料本章知识点文章目录Pytest之fixture(1)fixture实现前/后置(2)fixture数据传递(3)fixture全局共享机制conftest.py(4)fixture嵌套Pytest之fixture示列代码使用装饰器的方式,scope参数是代表指......
  • 【python自动化】pytest系列(完结)
    pytest系列文章一共有四篇,本文为第四篇完结篇。应各位小伙伴留言,希望可以把这几篇pytest文章进行汇总。公众号:梦无矶的测试开发之路,回复pytest可以领取对应汇总资料本章知识点文章目录Pytest高阶用法(1)参数化(2)pytest.ini①marks标记②addopts配置(3)pytest.mark.相关1、直接跳过执......
  • Lnton羚通视频分析算法平台OpenCV-Python 教程 Hough直线变换
    OpenCVPythonHough直线变换霍夫直线变换(HoughTransform)是一种在图像中检测直线的技术。它可以帮助我们从图像中鲜明地检测出直线段,并且对于噪声和不完整的线段也有较好的鲁棒性。霍夫直线变换的基本思想是将直线表示为参数空间中的曲线,通过统计参数空间中的交点来检测直线。以下......
  • python 计算两个日期之间的时间差,并将其转换为秒数
    python计算两个日期之间的时间差,并将其转换为秒数 fromdatetimeimportdatetime,timedelta#创建两个日期对象date1=datetime(2023,7,2)date2=datetime(2023,7,4)#计算时间差,并转换为秒数delta_seconds=int(timedelta.total_seconds(date2-date1))p......
  • Python接口编程:理解、设计和实现
    在当今的软件开发世界中,接口(API)是应用程序之间进行数据交换和通信的关键方式。这种通信可以在同一应用程序的各组件之间,也可以在完全不同的系统和平台之间进行。Python作为一种功能强大的编程语言,因其易用性和丰富的库而广泛用于开发接口。理解接口在计算机科学中,接口通常是一种定......
  • Python文件的基本操作
    Python文件的基本操作文件的基本操作文件的读写模式文件的读写操作相关的方法文件的操作模式文件的练习题文件的基本操作1.我们能够操作哪些类型的文件:.txt没有后缀名的文件#我们现在不能操作word、Excel、PPT等文件暂时不能够操作numpy、pandas等模......
  • python开发之微信机器人的二次开发
    简要描述:取消消息接收请求URL:http://域名地址/cancelHttpCallbackUrl请求方式:POST请求头Headers:Content-Type:application/json参数:参数名类型说明codestring1000成功,1001失败msgstring反馈信息成功返回示例{"message":"成功","code":"1000","data":......