次のように内容は次のとおりです。
分画を学ぶの学生があります。彼は最も簡単な画分に連分数をする必要があり、あなたは彼を助けることができますか?
分数スコアは、図の形状も上方にあります。この問題では、すべての係数が0よりも大きい整数に等しいです。
連分数(CONT [0]は、図A0の代表など)を表すCONT入力係数。これは値が連分数N / Mに等しくなるように長さ2 [N、M]の配列を返し、そしてnは、M 1は、最大公約数です。
例1:
入力:CONT = [3、2、 0、2]
出力:[13、4]
説明:に相当連分数オリジナル3 +(1 /(2 +(1 /(0 + 1/2))))。注[26]、[8]、[-13は、-4]正解ではありません。例2:
入力:CONT = [0、0、 3]
出力:[3,1]
説明:答えは分母を作る1の整数である場合。
制限事項:
CONT [I]> = 0
<= CONT <= 10の長さが1
CONT 0の最後の要素と等しくないん
31--1 ^ 2以上(すなわち、これ以上回答N、Mの値は32ビット整数INTを保存できるようにすることができ)。
問題解決のアイデア:交換価値の完了は毎回、分子と分母を計算することができた後、二つの変数は、分子と分母の値を記録したとの主題は、難しいことではありませんが、バックの続きから計算されます。
コードは以下の通りであります:
クラスのソリューション(オブジェクト): defの割合(自己、続き ):""」 :タイプCONT:リスト[INT] :RTYPE:リスト[INT] ""」 RC = CONT [:: - 1 ] 分子 =のRC [0] 分母 = 1 用 I における範囲(1 、LEN(RC))。 分子、分母 = 分母、分子 分子 + = RC [I] * 分母の リターン [分子、分母]