いろんな言語で宿題スレ 第三編at TECH
いろんな言語で宿題スレ 第三編 - 暇つぶし2ch382:デフォルトの名無しさん
10/01/22 20:06:16
>>381 訂正
% Prolog

'異なる自然数p,qと、もう一つの自然数dを入力する。d以下の自然数kのうちで、k=mp+nqと表すことの出来るもの(m,nは自然数)を小さい順に表示し、最後にその個数を表示する' :-
  '異なる自然数p,qと、もう一つの自然数dを入力する'(_p,_q,_d),
  'd以下の自然数kのうちで、k=mp+nqと表すことの出来るもの(m,nは自然数)を小さい順に集め'(_p,_q,_d,L),
  '表示し'(L),
  最後にその個数を表示する(L),!.

表示し(L) :-
  concat_atom(L,' ',S),
  write_formatted('%t\n',[S]),!.

最後にその個数を表示する(L) :-
  length(L,_その個数),
  write_formatted('合計で%t個あります\n',[_その個数]),!.

'異なる自然数p,qと、もう一つの自然数dを入力する'(_p,_q,_d) :-
  get_line(Line),
  split(Line,[' '],[_p,_q,_d]),!.

'd以下の自然数kのうちで、k=mp+nqと表すことの出来るもの(m,nは自然数)を小さい順に集め'(_p,_q,_d,_kならび) :-
  findall(N,for(0,N,10),L1),
  findall(_k,(for(0,_k,_d),順列(L1,2,[_m,_n]),'d以下の自然数kのうちで、k=mp+nqと表すことの出来るもの'(_p,_q,_d,_m,_n,_k)),_kならび),!.

'd以下の自然数kのうちで、k=mp+nqと表すことの出来るもの'(_p,_q,_d,_m,_n,_k) :-
  _k is _p * _m + _q * _n,
  _k =< _d,!.



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