支持{:5_106:}
# 题干:公鸡 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)
{:5_101:}
123132
aa
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}种方法")
{:9_227:}
过来学习学习
我看看 FOR 语句如何写呢?
答案
{:5_97:}
鱼C-小师妹 发表于 2021-2-23 19:06
那小师妹给你加油
最前面加上
**** Hidden Message *****
万钱万鸡
**** Hidden Message *****
1
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}只')
#优化:知道公鸡和母鸡,再通过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
来学习了
学习一下
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")
for cock in range(0,21)