1. 程式人生 > >將真分數分解為埃及分數

將真分數分解為埃及分數

題目描述

分子為1的分數稱為埃及分數。現輸入一個真分數(分子比分母小的分數,叫做真分數),請將該分數分解為埃及分數。如:8/11 = 1/2+1/5+1/55+1/110。

輸入描述:

輸入一個真分數,String型

輸出描述:

輸出分解後的string

輸入:

8/11

輸出:

1/2+1/5+1/55+1/110

程式碼如下:

while True:
    try:
        up,down = list(map(int,input().split("/")))
        res = ""
        while up != 1:
            if down%(up-1) == 0:
                res += "1/"+str(down//(up-1))+"+"
                up = 1
            else:
                res += "1/"+str(down//up+1)+"+"
                x = up-down%up
                down = down*(down//up+1)
                up = x
                if down%up == 0:
                    down = down//up
                    up = 1
        res += "1/"+str(int(down))
        print(res)
    except:
        break