鱼C论坛

 找回密码
 立即注册
楼主: 鱼C-小师妹

[技术交流] 00 - 百钱百鸡【师妹小讲堂】

[复制链接]
发表于 2022-5-2 19:25:19 | 显示全部楼层
# 题干:公鸡 5 块一只,母鸡 3 块一只,3 只小鸡算 1 块,要用 100 块钱买 100 只鸡,数量各是多少?

# 公鸡的数量限制[0, 20]    i
# 母鸡的数量限制[0, 33]    j
# 小鸡的数量限制[0, 100]   k
# 金钱的限制条件 5*i + 3*j + k/3 == 100

import time as t

class Mytimer:
    def __init__(self, inputfun):
        self.inputfun = inputfun
        self.show = '请调用 calculate() 计时!'
    def __str__(self):
        return self.show
    __repr__ = __str__

    def calculate(self):
        self.begin = t.process_time()
        self.inputfun()
        self.end = t.process_time()
        self.uset = self.end - self.begin
        self.show = '运行 %s 程序耗时%.5f 秒' % (self.inputfun, self.uset)


def Enumeration_method():
    for i in range(0, 21):
        for j in range(0, 34):
            for k in range(0, 101):
                if (i + j + k == 100) and (5*i + 3*j + k/3 == 100):
                    print('可买公鸡 %d 只,母鸡 %d 只,小鸡 %d 只' % (i, j, k))

def Improve_method():
    for i in range(0, 21):
        for j in range(0, 34):
            k = 100 - i - j
            if 5*i + 3*j + k/3 == 100:
                print('可买公鸡 %d 只,母鸡 %d 只,小鸡 %d 只' % (i, j, k))


t1 = Mytimer(Enumeration_method)
t1.calculate()
print(t1)

t2 = Mytimer(Improve_method)
t2.calculate()
print(t2)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-5-7 22:11:50 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-5-20 13:54:56 | 显示全部楼层
123132
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-6-14 22:17:21 From FishC Mobile | 显示全部楼层
aa
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-6-15 07:06:05 | 显示全部楼层
n = 0
for cock in range(21):  # 全买公鸡,最多20只
    for hen in range(1, 34):
        chicken = 100 - cock - hen
        if 5 * cock + 3 * hen + chicken * 1 / 3 == 100:
            print(f"鸡翁{cock}只,鸡母{hen}只,鸡雏{chicken}只。")
            n += 1
print(f"共有{n}种方法")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-7-5 10:25:58 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-7-6 00:47:52 | 显示全部楼层
过来学习学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-9-7 21:20:21 | 显示全部楼层
我看看 FOR 语句如何写呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-9-19 15:56:34 | 显示全部楼层
答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-11-1 20:45:36 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-11-1 21:31:27 | 显示全部楼层

最前面加上
游客,如果您要查看本帖隐藏内容请回复
[/hide]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-1 21:34:49 | 显示全部楼层
万钱万鸡
游客,如果您要查看本帖隐藏内容请回复
[/hide]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-4 11:43:29 | 显示全部楼层
1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-11-13 18:04:32 | 显示全部楼层
for cock in range(0,21):
    for hen in range(0,33):
        for chick in range(0,101):
            if cock*5+hen*3+chick/3 == 100 and cock + hen + chick == 100:
                print(f'公鸡{cock}只,母鸡{hen}只,小鸡{chick}只')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-13 18:06:35 | 显示全部楼层
#优化:知道公鸡和母鸡,再通过100减去公鸡和母鸡的数量得到小鸡的数量,只需要判断价格是否等于100
# for cock in range(0,20):
#     for hen in range(0,33):
#         chick = 100-cock-hen
#         if cock*5+hen*3+chick/3 == 100:
#             print('公鸡{}只,母鸡{}只,小鸡{}只'.format(cock,hen,chick))

#while循环

# while cock <= 20:
#     hen = 0
#     while hen <= 33:
#         chick = 0
#         while chick <= 100:
#             if cock*5 + hen*3 + chick/3 == 100 and cock + hen + chick == 100:
#                 print('公鸡{}只,母鸡{}只,小鸡{}只'.format(cock,hen,chick))
#             chick +=1
#         hen +=1
#     cock +=1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-19 18:36:00 From FishC Mobile | 显示全部楼层
来学习了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-23 22:04:46 | 显示全部楼层
学习一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-23 22:09:11 | 显示全部楼层
for gj in range(0,100):
        for mj in range(0,100):
                for xj in range(0,100):
                        if (gj*5)+(mj*3)+(xj/3)==100 and gj+mj+xj==100:
                                print(f"公鸡数量 {gj} 母鸡数量 {mj} 小鸡数量 {xj}")
                                print(f"公鸡价格 {gj*5} 母鸡价格 {mj*3} 小鸡价格 {xj/3}\n\t")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-29 10:52:50 | 显示全部楼层
for cock in range(0,21)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-19 22:43:56 From FishC Mobile | 显示全部楼层
一堆大佬全都写的英文变量,不是说python支持汉字变量吗,我来个中文的!!!
公鸡 = 5
母鸡 = 3
小鸡 = 1/3
for 公鸡数 in range(0,21):
    for 母鸡数 in range(0,34):
        for 小鸡数 in range(100 - 公鸡数 - 母鸡数,101,3):
            总数 = 公鸡数 + 母鸡数 + 小鸡数
            钱数 = 公鸡数 * 公鸡 + 母鸡数 * 母鸡 + 小鸡数 * 小鸡
            if 总数==钱数==100:
                print('公鸡数 = %d,母鸡数 = %d,小鸡数 = %d'%(公鸡数,母鸡数,小鸡数))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-15 10:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表