|
发表于 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) |
|