codewarsのエジプト式の分数のalgorithmを解いてみたのですが、あるコード確認サイトではちゃんと正しい結果が出力されるのに実際にcodewarsのサイトで実行すると変な結果が出ます。
"4/5を引数としたとき"['1/2', '1/4', '1/2', '1/4', '1/20'] should equal ['1/2', '1/4', '1/20']
"0.66"を引数としたとき['1/2', '1/4', '1/2', '1/4', '1/20', '1/2', '1/7', '1/59', '1/5163', '1/53307975'] should equal ['1/2', '1/7', '1/59', '1/5163', '1/53307975']
"75/3"を引数とした時['1/2', '1/4', '1/2', '1/4', '1/20', '1/2', '1/7', '1/59', '1/5163', '1/53307975', '25'] should equal ['25']
これは僕のコードがおかしいのか、それともこういうことはありうるのでしょうか?
ちなみに機械が関数の引数に入れるものは文字列であり、0のばあいは空のlistを返します。
from fractions import Fraction list=[] def decompose(n): n=Fraction(n) if n==0: return list elif n.denominator==1: list.append(str(n.numerator)) return list elif n.numerator==1: n=str(n) list.append(n) return list else: x,y=n.numerator,n.denominator fra=Fraction(1,(y//x)+1) answer=n-fra fra=str(fra) list.append(fra) return decompose(answer)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。