A

#公鸡5文钱一只 母鸡3文钱一只 小鸡1文钱 三只

money = 100

def buy_kun(gong:int,mu:int,xiao:int,c:int) -> None:
    if gong*5+mu*3+xiao > money or gong+mu+xiao*3>100:
        return

    if gong*5+mu*3+xiao == money  and gong+mu+xiao*3==100:
        print(f'买{gong}只公鸡,{mu}只母鸡,{xiao*3}只小鸡,刚好凑够{money}文钱。')
        return
    
    if c<1 :
        buy_kun(gong+1,mu,xiao,0)
    if c<2:
        buy_kun(gong,mu+1,xiao,1)
    if c<3:
        buy_kun(gong,mu,xiao+1,2)


buy_kun(0,0,0,0)

B

参考:https://blog.csdn.net/qq_63762353/article/details/133204305

#公鸡5文钱一只 母鸡3文钱一只 小鸡1文钱 三只
import numpy as np
st = np.zeros((100, 100, 100))

money = 100

def buy_kun(gong:int,mu:int,xiao:int) -> None:
    if st[gong][mu][xiao] == 1:
        return
    else:
        st[gong][mu][xiao] = 1

    if gong*5+mu*3+xiao > money or gong+mu+xiao*3>100:
        return

    if gong*5+mu*3+xiao == money  and gong+mu+xiao*3==100:
        print(f'买{gong}只公鸡,{mu}只母鸡,{xiao*3}只小鸡,刚好凑够{money}文钱。')
        return
    
    buy_kun(gong+1,mu,xiao)
    buy_kun(gong,mu+1,xiao)
    buy_kun(gong,mu,xiao+1)


buy_kun(0,0,0)

voyage200
1 声望0 粉丝