いろんな言語で宿題スレ
■ このスレッドは過去ログ倉庫に格納されています
0847デフォルトの名無しさん
2009/10/25(日) 05:36:12% Prolog
t846 :-
t846_入力(_整数ならび,_ローテーションする数),
length(_整数ならび,_入力した要素数),
t846(_ローテーションする数,_入力した要素数,_整数ならび,_ローテーションした整数ならび),
concat_atom(_ローテーションした整数ならび,',',S),
write_formatted('ローテーションした整数列 %t です\n',[S]),!.
t846.
t846(_ローテーションする数,_入力した要素数,_整数ならび,X) :-
_入力した要素数>0,_入力した要素数<11,
ならびの回転(右方向,_ローテーションする数,L,X),!.
t846(_ローテーションする数,_入力した要素数,L,X) :-
\+((_入力した要素数>0,_入力した要素数<11)),
write_formatted('入力した要素数が適切でありません %t 個\n',[_入力した要素数]),
fail.
t846_入力(_ローテーションする数,_入力した要素数,_整数ならび,X) :-
write('整数をカンマで区切り最大10個まで入力してください : '),
get_line(Line),
split(Line,[','],_整数ならび),
write('ローテーションする数を入れてください : '),
get_integer(_ローテーションする数),!.
ならびの回転(右方向,1,L1,L2) :- append(L0,[A],L1),append([A],L0,L2).
ならびの回転(右方向,N,L1,L2) :- N > 1,append(L0,[A],L1),append([A],L0,L3).
■ このスレッドは過去ログ倉庫に格納されています