いろんな言語で宿題スレat TECH
いろんな言語で宿題スレ - 暇つぶし2ch468:デフォルトの名無しさん
09/07/13 13:42:10
>>465
% Prolog
逆数を正確に計算(_最大桁,_正整数,_逆数表示) :-
  逆数表示(_最大桁,_正整数,[[0,1]],_逆数表示),!.

逆数表示(N,_,Y,X) :- N < 0,逆数表示(Y,[],X),!.
逆数表示(N,_整数,[[D,0]|Y],X) :- 逆数表示([[D,0]|Y],[],X),!.
逆数表示(N,_整数,[[_商,_剰余]|Y],X) :-
  _商2 is _剰余 // _整数,
  _剰余2 is (_剰余 mod _整数) * 10,
  append(L1,[[_商2,_剰余2]|L2],[[_商,_剰余]|Y]),
  append([[']...',_]|L1],[[_商2,_剰余2],['[',_]|L2],Z),
  逆数表示(Z,[],X),!.
逆数表示(N,_整数,[[_商,_剰余]|Y],X) :-
  _整数 > _剰余,
  _剰余2 is _剰余 * 10,
  N2 is N - 1,
  逆数表示(N2,_整数,[[0,_剰余2],[_商,_剰余]|Y],X),!.
逆数表示(N,_整数,[[_商,_剰余]|Y],X) :-
  _整数 < _剰余,
  _商2 is _剰余 // _整数,
  _剰余2 is (_剰余 mod _整数) * 10,
  N2 is N - 1,
  逆数表示(N2,_整数,[[_商2,_剰余2],[_商,_剰余]|Y],X),!.

逆数表示([],[_|X],S) :- concat_atom(['0','.'|X],S),!.
逆数表示([[A|_]|R1],Y,S) :- 逆数表示(R1,[A|Y],S).


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch