目录

 

 1.问题描述

 2.算法

 3.数据文档输入

 4.易错点


 1.问题描述

 百鸡问题:100块钱买100只鸡,公鸡5元一只,母鸡3一只,小鸡1块钱3只,怎么样的买法可以100块买100只鸡。

 2.算法

x+y+z=100 #公鸡+母鸡+小鸡=100
5x+3y+1/3z=100 #总钱数

 3.数据文档输入

df = pd.read_csv("chook.csv")
df = pd.read_excel("chook.xlsx") #获得文档中指定的买鸡总钱数
AllMoney = df.loc[0].money #获得文档中指定的买鸡总数量
AllNumber = df.loc[0].chooknumber

 4.易错点

1) 注意小鸡是3的倍数且不能为小数。
2) 鸡不能为负数且不能为小数。
3) 测试文档数据中有错误数据,需要代码对错误数据进行提示 。

import pandas as pd

def Chicken_Best():
#从文档中读取数据
    #df = pd.read_csv("chook.csv")
    df = pd.read_excel("chook.xlsx")
#获得文档中指定的买鸡总钱数
    AllMoney = df.loc[0].money
#获得文档中指定的买鸡总数量
    AllNumber = df.loc[0].chooknumber
#显示文档信息
    print(df)

    for rooster in range(15):  # 如果全买公鸡,最多只能买20只,公鸡不大于15,7x=4y=100,x为整数,x为7的倍数,得出x<15

        #hen = 25 - 1.75 * rooster  # 上面两个式子消去一未知数
        #t通用公式
        hen =( 3*AllMoney - AllNumber - 14*rooster)/8
        chick = AllMoney - rooster - hen  # 小鸡=AllNumber-公鸡-母鸡
        if ((chick == (3*AllMoney - 15 * rooster - 9 * hen)) and (chick % 3 == 0) and (chick > 0) and (
            hen > 0)):  # 鸡>0,小鸡是3的倍数,因为不能为小数
            print('公鸡有:{},母鸡有:{},小鸡有:{}'.format(rooster, hen, chick))#格式化输出
        else:
            print("输入的条件无法输出结果!")
Chicken_Best()  # 方法调用
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐