1

Rational クラスの独自のバージョンを作成しており、最大公約数を再帰的に使用したいと考えています。ただし、負の数を考慮する必要があります-分子で負の数を常に表現したいので、num = 1およびdenom = -2としましょう。num = -1およびdenom = 2として表現したいと思います。 num=-1 かつ denom=-2 の場合、num=1 および denom=2 です。gcd を見つけるために abs 関数を使用する必要があることはわかっていますが、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!!
4

1 に答える 1