GCD分数代码错误且未打印出正确答案

时间:2019-03-07 00:36:11

标签: python python-3.x

我必须获取函数的GCD并在划分输入后打印出最终输出。

print('Welcome to Fraction Simplifier')
print('Type "exit" to quit.')

def getInput():

    x = (input('Enter Fraction (Int/Int):\n'))
    if x!='exit':
        x = (input('Enter Fraction (Int/Int):\n'))
    new_list = x.split('/') #['10', '/', '2']

    return new_list


def gcd(a, b):

    if int(b) == 1 or int(b) == 0:
        print('Simplified Fraction')
        print(a)
    else:
        print('Simplified Fraction')
        gcd(int(b),int(a % b)) #a =b b = b = a % b
        print(int(a/b),'/',int(a%b))

if __name__== "__main__":

    x = getInput()
    a = int(x[0])
    b = int(x[1])
    gcd(a,b)

我的问题是,当我尝试打印出来时,它得到的是随机数,而我不知道它们从何而来。关于可能出了什么问题的任何想法?

一旦成功,就应该这样做:30/4将被解析为15/2(最终输出)

1 个答案:

答案 0 :(得分:0)

您应删除print()的{​​{1}}部分中的else个调用。因为这是一个递归函数,所以您只需要一个打印调用。只要Wikipedia是正确的,递归仅应在b == 0时停止。