Hyjxsssss 发表于 2022-5-2 19:25:19

# 题干:公鸡 5 块一只,母鸡 3 块一只,3 只小鸡算 1 块,要用 100 块钱买 100 只鸡,数量各是多少?

# 公鸡的数量限制    i
# 母鸡的数量限制    j
# 小鸡的数量限制   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)

jiaolong211 发表于 2022-5-7 22:11:50

{:5_101:}

cscscscs 发表于 2022-5-20 13:54:56

123132

wy308019 发表于 2022-6-14 22:17:21

aa

wangxiaolvshi 发表于 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}种方法")

jhywy 发表于 2022-7-5 10:25:58

{:9_227:}

hxy785815707 发表于 2022-7-6 00:47:52

过来学习学习

13518180125 发表于 2022-9-7 21:20:21

我看看 FOR 语句如何写呢?

zq66 发表于 2022-9-19 15:56:34

答案

张金泉 发表于 2022-11-1 20:45:36

{:5_97:}

hveagle 发表于 2022-11-1 21:31:27

鱼C-小师妹 发表于 2021-2-23 19:06
那小师妹给你加油

最前面加上
**** Hidden Message *****

hveagle 发表于 2022-11-1 21:34:49

万钱万鸡
**** Hidden Message *****

韩林学府 发表于 2022-11-4 11:43:29

1

语与余 发表于 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}只')

语与余 发表于 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

晴时雨 发表于 2022-11-19 18:36:00

来学习了

罗天才 发表于 2022-11-23 22:04:46

学习一下

罗天才 发表于 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")

iamjhl 发表于 2022-11-29 10:52:50

for cock in range(0,21)

mrdouzi 发表于 2022-12-19 22:43:56

一堆大佬全都写的英文变量,不是说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'%(公鸡数,母鸡数,小鸡数))
页: 1 2 3 [4] 5
查看完整版本: 00 - 百钱百鸡【师妹小讲堂】