「プロジェクトオイラー問65」の編集履歴(バックアップ)一覧はこちら

プロジェクトオイラー問65」(2014/03/02 (日) 02:21:46) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%2065 *Problem 65 「e の近似分数」 † eの連分数展開に関する問題。 詳細はリンク先参照のこと。 解法 定義通り計算。 分数を上から計算するとかなり難しいので分数を一番下から計算していく。 d(C,1):- C mod 3<2, !. d(C,Result):- !, Result is 2*(C // 3 + 1). sum([],0):-!. sum([X|Xs],Result):-sum(Xs,Re),Result is Re+X-48. calc(C,_,_):- C<0, !, fail. calc(0,Up,Down):- !, Up1 is Up+Down*2, Down1 is Down, gcd(Up1,Down1,G), Up2 is Up1//G, number_codes(Up2,List), sum(List,Ans), write([Ans]). calc(C,Up,Down):- !, d(C,D), Down1 is D*Down+Up, Up1 is Down, gcd(Up1,Down1,G), Down2 is Down1//G, Up2 is Up1//G, C1 is C-1, calc(C1,Up2,Down2). calc_w(C):- C1 is C-1, d(C,D), calc(C1,0,D). main65:- calc_w(100).

表示オプション

横に並べて表示:
変化行の前後のみ表示: