用小于等于n元去买100只鸡,大鸡5元/只,小鸡3元/只,还有1/3元每只的一种小鸡,分别记为x只,y只,z只。编程求解x,y,z所有可能解。
(本题没有测试数据,
int main(){}就能通过
真·本地过了就是过了)
int main(){}就能通过
测试数据有多组,输入n。
对于每组输入,请输出x,y,z所有可行解,按照x,y,z依次增大的顺序输出。
40
x=0,y=0,z=100 x=0,y=1,z=99 x=0,y=2,z=98 x=1,y=0,z=99
并不是无脑循环,循环次数较少,这循环次数差不多是最少了,还能再优化吗?
def findHundredChicken(x,y,z,price): #递归增加小鸡,减少小小鸡,输出 if 5*x+3*y+1/3*z <= price: #价格超出后不再递归 print("x=%d,y=%d,z=%d"%(x,y,z)) findHundredChicken(x,y+1,z-1,price) try: while True: num = int(input()) for i in range(101): #在这里循环到大鸡最多能买的个数 if (num-i*5)*3<100-i: break findHundredChicken(i,0,100-i,num) #始终保持百鸡 except Exception: pass