このディレクトリの索引

# 出典 :: Python の宿題ここで答えます Part 1 #38 # 出典 :: ★★ Java の宿題ここで答えます Part 57 ★★ #215 # 【 課題 】キーボードから10個の数字を入力する。 #       隣同士の足し算をし、以下の例のように1の位の数字を次の行に出力し、 #       最後に残った数字を出力する。 # #       (例) #       数字を入力してください。 #       2359318473 # #       2 3 5 9 3 1 8 4 7 3 #        5 8 4 2 4 9 2 1 0 #        3 2 6 6 3 1 3 1 (以下略 # #       最後に残った数字は 2 です。 # 'キーボードから10個の数字を入力する。 隣同士の足し算をし、1の位の数字を次の行の現在行の数字の間に全体として逆三角形を形成するように出力し、 最後に残った数字を別の行に出力する。 数字の間には必ずひとつ空白が入るようにすること。' :- キーボードから10個の数字を入力する(L), '隣同士の足し算をし、1の位の数字を次の行の現在行の数字の間に全体として逆三角形を形成するように出力し、'([],L,_最後に残った数字), '最後に残った数字を別の行に出力する。'(_最後に残った数字). キーボードから10個の数字を入力する(L) :- write('10個の数字列を入力してください :'), n個の数字ならびを得る(10,L),!. n個の数字ならびを得る(N,L) :- length(Ln,N), 数字ならびを得る(Ln,L),!. 数字ならびを得る([],[]). 数字ならびを得る([_|Ln],[N|R]) :- 数字をひとつ得る(N), 数字ならびを得る(Ln,R). 数字をひとつ得る(N) :- 数字を得る(N). 数字をひとつ得る(N) :- 数字をひとつ得る(N). 数字を得る(N) :- get_code(_数字コード), between(48,57,_数字コード), N is _数字コード - 48. '隣同士の足し算をし、1の位の数字を次の行の現在行の数字の間に全体として逆三角形を形成するように出力し、'(Ln,[_最後に残った数字],_最後に残った数字) :- 最後に残った数字を表示する(Ln,_最後に残った数字). '隣同士の足し算をし、1の位の数字を次の行の現在行の数字の間に全体として逆三角形を形成するように出力し、'(Ln,L,_最後に残った数字) :- 複数要素ある場合は一行表示と逆三角形の加算処理による要素数減衰を繰り返す(Ln,L,_最後に残った数字). 複数要素ある場合は一行表示と逆三角形の加算処理による要素数減衰を繰り返す(Ln,L,X) :- 一行表示(Ln,L), 逆三角形の加算処理(L,L2), '隣同士の足し算をし、1の位の数字を次の行の現在行の数字の間に全体として逆三角形を形成するように出力し、'([' '|Ln],L2,X). 最後に残った数字を表示する(Ln,_最後に残った数字) :- 空白文字列印字(Ln), writef('%w\n',[_最後に残った数字]). '最後に残った数字を別の行に出力する。'(_最後に残った数字) :- writef('\n残った数字は: %w です\n',[_最後に残った数字]). 一行表示(Ln,L) :- 空白文字列印字(Ln), atomic_list_concat(L,' ',A), writef('%w\n',[A]). 空白文字列印字(L) :- all(L,' '), atomic_list_concat(L,_空白文字列), writef('%w',[_空白文字列]). all([],V). all([V|R],V) :- all(R,V). 逆三角形の加算処理([_],[]). 逆三角形の加算処理([A,B|R1],[C|R2]) :- C is (A+B) mod 10, 逆三角形の加算処理([B|R1],R2).