このディレクトリの索引

# 出典 :: C/C++の宿題片付けます 152代目 #974 # # C言語でロシア農民の掛け算のプログラムを教えてくれ ください # ロシア農民の掛け算(_掛けられる数,_掛ける数,_答え) :- length(L1,_掛けられる数), length(L2,_掛ける数), '掛けられる数を2倍し、掛ける数を1になるまで2で割ることを繰り返す。掛ける数が奇数の時の掛けられる数だけを集めて合計を取る'(L1,L2,L3), length(L3,_答え),!. '掛けられる数を2倍し、掛ける数を1になるまで2で割ることを繰り返す。掛ける数が奇数の時の掛けられる数だけを集めて合計を取る'(L1,[_],L1) :- !. '掛けられる数を2倍し、掛ける数を1になるまで2で割ることを繰り返す。掛ける数が奇数の時の掛けられる数だけを集めて合計を取る'(L1,L2,L3) :- '掛ける数が奇数'(L2), '掛けられる数を2倍し'(L1,L1_2), '掛ける数を2で割る'(L2,L2_2), append(L1,L4,L3), '掛けられる数を2倍し、掛ける数を1になるまで2で割ることを繰り返す。掛ける数が奇数の時の掛けられる数だけを集めて合計を取る'(L1_2,L2_2,L4),!. '掛けられる数を2倍し、掛ける数を1になるまで2で割ることを繰り返す。掛ける数が奇数の時の掛けられる数だけを集めて合計を取る'(L1,L2,L3) :- \+('掛ける数が奇数'(L2)), '掛けられる数を2倍し'(L1,L1_2), '掛ける数を2で割る'(L2,L2_2), '掛けられる数を2倍し、掛ける数を1になるまで2で割ることを繰り返す。掛ける数が奇数の時の掛けられる数だけを集めて合計を取る'(L1_2,L2_2,L3). '掛ける数が奇数'(L2) :- append(L,[_|L],L2). '掛けられる数を2倍し'(L1,L2) :- append(L1,L1,L2). '掛ける数を2で割る'(L1,L2) :- append(L2,L2,L1),!. '掛ける数を2で割る'(L1,L2) :- append(L2,[_|L2],L1),!.