- 521 名前:デフォルトの名無しさん mailto:sage [2010/01/29(金) 22:25:00 ]
- >>515
% Prolog 'キーボードから(標準入力から)1つの十進数表現の正の整数を受け取って、その数が3の倍数かまたは各桁の数字のいづれかに3が入っている数ならば画面に(標準入力に)YES、そうでなければ、NOと出力せよ' :- 'キーボードから(標準入力から)1つの十進数表現の正の整数を受け取って(_正の整数), その数が3の倍数かまたは各桁の数字のいづれかに3が入っている(_正の整数,_診断), write_formatted('%t\n',[_診断]),!. 'キーボードから(標準入力から)1つの十進数表現の正の整数を受け取って(_正の整数):- repeat, get_integer(_正の整数), integer(_正の整数), _正の整数 >= 0,!. その数が3の倍数かまたは各桁の数字のいづれかに3が入っている(_数,'YES') :- 0 is _数 mod 3,!. その数が3の倍数かまたは各桁の数字のいづれかに3が入っている(_数,'YES') :- 各桁の数字のいづれか(_数,L), member(3,L),!. その数が3の倍数かまたは各桁の数字のいづれかに3が入っている(_,'NO'). 各桁の数字のいづれか(N,[N]) :- N < 10,!. 各桁の数字のいづれか(N,[M|R]) :- M is N mod 10, M2 is N // 10, 各桁の数字のいづれか(M2,R).
|

|