爱意随风起9306 发表于 2022-12-31 22:47:53

大佬看看代码,看看哪里错了

https://thumbnail1.baidupcs.com/thumbnail/c949f8758ia0a8267c9bed45bb54c047?fid=1590253992-250528-266060209193453&rt=pr&sign=FDTAER-DCb740ccc5511e5e8fedcff06b081203-%2bkeL90%2fyYTyUNbWX9XafqJs0UQQ%3d&expires=8h&chkbd=0&chkv=0&dp-logid=393758874777537192&dp-callid=0&time=1672495200&size=c1463_u915&quality=90&vuk=1590253992&ft=image&autopolicy=1


n = input()
newn = n.split()
a = int(newn)   
b = int(newn)
if b>0:
    div = a//b
    mod = a%b
    print(str(div) + " " + str(mod))

isdkz 发表于 2022-12-31 22:54:11

// 在除不尽的时候会向下取整,-3.333333 向下取整就是 -4 了,因为 -4 < -3.3333,

爱意随风起9306 发表于 2022-12-31 22:57:55

isdkz 发表于 2022-12-31 22:54
// 在除不尽的时候会向下取整,-3.333333 向下取整就是 -4 了,因为 -4 < -3.3333,

可以用这个math.ceil吗

爱意随风起9306 发表于 2022-12-31 22:58:25

isdkz 发表于 2022-12-31 22:54
// 在除不尽的时候会向下取整,-3.333333 向下取整就是 -4 了,因为 -4 < -3.3333,

那该怎么改

isdkz 发表于 2022-12-31 23:10:36

本帖最后由 isdkz 于 2022-12-31 23:17 编辑

爱意随风起9306 发表于 2022-12-31 22:58
那该怎么改
可以先做一个判断,如果是负数的话先转成正数,转成正数计算的结果就是 3.3333...,向下取整就是 3 了,然后再把结果转回负数n = input()
newn = n.split()
a = int(newn)   
b = int(newn)
if b>0:
    div = a//b if a>0 else -(-a//b)                                     # 改了这里
    mod = a%b if a>0 else -(-a%b)                                 # 改了这里
    print(str(div) + " " + str(mod))

或者
n = input()
newn = n.split()
a = int(newn)   
b = int(newn)
if b>0:
    div, mod = divmod(a, b) if a>0 else map(lambda x: -x, divmod(-a, b))         
    print(str(div) + " " + str(mod))

爱意随风起9306 发表于 2022-12-31 23:30:02

isdkz 发表于 2022-12-31 23:10
可以先做一个判断,如果是负数的话先转成正数,转成正数计算的结果就是 3.3333...,向下取整就是 3 了, ...

谢谢

学习编程中的Ben 发表于 2023-1-1 08:11:39

来看看
页: [1]
查看完整版本: 大佬看看代码,看看哪里错了