gpt4 book ai didi

Python gcd 与负数

转载 作者:行者123 更新时间:2023-12-01 05:39:44 24 4
gpt4 key购买 nike

我正在编写我自己的 Rational 类版本,并且我想递归地使用最大公约数。我需要考虑负数 - 我总是想在分子中表示我的负数,所以假设 num=1 和 denom=-2,我想将其表示为 num=-1 和 denom=2 和如果 num=-1 且 denom=-2,则 num=1 且 denom=2。我知道我需要使用abs函数来查找gcd,但是如果我删除负号来查找gcd,我需要将其放回...这就是我到目前为止所拥有的...

def gcd(a,b):

'''Greatest common divisor function
(a and b are integers)'''
if b==0:
return a
else:
return gcd(b,a%b)

class Rational:

def __init__(self,a=0,b=1):

'''Constructor for Rational'''
if b==0:
return 'Denominator cannot be zero.'
else:
g=gcd(abs((a,b))
self.n=a/g
self.d=b/g
# I need to 'undo' the abs to get my self.n and self.d-
if that makes sense!!

最佳答案

你可以这样做

self.n = abs(a/g)
self.m = abs(b/g)
if a*b < 0: # i.e. signs are different
self.n = -self.n

关于Python gcd 与负数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17929269/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com