鱼C论坛

 找回密码
 立即注册
12
返回列表 发新帖
楼主: zltzlt

[已解决]Python:每日一题 274

[复制链接]
发表于 2019-11-15 23:11:57 | 显示全部楼层
本帖最后由 peicd 于 2019-11-16 00:15 编辑

如果数据小:
def abc(a,b,price):
    return price in [a*i+b*j for i in range(price//a+1) for j in range(price//b+1)]
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-16 00:10:27 | 显示全部楼层
def abc(a,b,price):
    b,a=max(a,b),min(a,b)
    for m in range(price//b+1):
        n = int((price - b * m) / a)
        if (price - b * m) % a==0 and n>=0:
            print("{0}*{1}+{2}*{3}={4}".format(a,n,b,m,price))
            return True
    return False
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-16 17:49:33 | 显示全部楼层
def fun274(x,y,place):
    if 0 in [(place-x*i)%y for i in range(1,(place//x)+1)]:print(True)
    else:print(False)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-16 21:31:15 | 显示全部楼层
  1. def fun(a, b, price):
  2.     if price % a == 0:
  3.         return True
  4.     sum = 0
  5.     while sum < price:
  6.         if (price - sum) % b == 0:
  7.             return True
  8.         sum += a
  9.     return False
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-17 08:28:34 | 显示全部楼层
麻烦版主大大帮忙测试一下,谢谢了。

  1. def f274(a,b,price):
  2.     l=a if a>b else b
  3.     m=a if a<b else b

  4.     for i in range (0, price//l):
  5.         if (price-i*l)%m==0:
  6.             return True
  7.     return False
复制代码

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-17 08:51:21 | 显示全部楼层
  1. def func(a,b,price):
  2.         for i in range(price//a+1):
  3.                 if not (price-a*i)%b:
  4.                         return True
  5.         return False
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-18 10:10:34 | 显示全部楼层
def fun(a,b,p):
    x = p//a
    if X!=0:
        for c in range(1,X+1):
            if ((p-c*a)% b == 0):
                 Y = (p-c*a)/b
                 print('%s =%s*%s '+'%s*%s' % (str(p),str(c),str(a),str(Y),str(b)))
            else:
                 print('组合不成功')
    else:
        if(p%b == 0):
            d = p%b
            print('%s = %s*%s'% (str(p),str(d),str(b)))
        else:
            print('组合不成功')
#:列举出所有的可能组合。并将每次组合不成功的也显示提升信息。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-19 11:24:57 | 显示全部楼层
  1. def fun(a, b, price):
  2.     n = price // (a + b)
  3.     return True if (price - max(a, b) * n) % min(a, b) == 0 else False


  4. print(fun(3, 7, 11))
  5. print(fun(6, 5, 32))
  6. print(fun(5, 15, 90))
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-21 21:55:45 | 显示全部楼层
  1. def f274(a: int, b: int, price: int) -> bool:
  2.     if a > b:
  3.         a, b = b, a
  4.     if price % a == 0 or price % b == 0:
  5.         # print(price / a, price / b)
  6.         return True
  7.     for i in range(price // b, 0, -1):
  8.         if (price - i * b) % a == 0:
  9.             # print(i, (price - i * b) / a)
  10.             return True
  11.     return False
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-27 11:00:20 | 显示全部楼层
本帖最后由 kinkon 于 2019-12-27 11:01 编辑
  1. def fun274(a,b,price):   
  2.     for i in range(price):   
  3.         if (price - i*a)%b == 0 or (price - i*b)%a == 0:
  4.             #检测参数print(i)
  5.             return True
  6.             break            
  7.         else:            
  8.             i += 1
  9.     return False
  10.    
  11. if __name__ == '__main__':
  12.     print('示例1 False 输出:',fun274(21512,196823,4233838041))
  13.     print('示例2 True 输出:',fun274(6,5,32))
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-27 11:04:23 | 显示全部楼层
本帖最后由 kinkon 于 2019-12-27 11:15 编辑
阴阳神万物主 发表于 2019-11-14 22:52
如果说我 5#提的问,都不存在的话,那么我这个成立,并且时间复杂度为 O(1+(price%max(a,b)))


小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-3 22:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表