このディレクトリの索引

# 出典 :: C/C++の宿題片付けます 134代目 #351 # [1] 授業単元:プログラミング演習 # [2] 問題文(含コード&リンク): # □1□2□3□4□5□6□7□8□9 # の□に四則の演算子(+,−)や空白を入れて100になるような # 小町算の全ての解を求めるプログラムを作成すること # # 例えば # 12 + 3 - 4 + 5 + 67 + 8 + 9 = 100 # 123 - 45 - 67 + 89 = 100 # '□1□2□3□4□5□6□7□8□9 の□に四則の演算子(+,−)や空白を入れて100になるような小町算の全ての解を求める'(_小町算の全ての解) :- findall(_評価文,'□1□2□3□4□5□6□7□8□9 の□に四則の演算子(+,−)や空白を入れて100になる小町算の解'(_評価文),_小町算の全ての解). '□1□2□3□4□5□6□7□8□9 の□に四則の演算子(+,−)や空白を入れて100になる小町算の解'(_評価文) :- '□1□2□3□4□5□6□7□8□9 の□に四則の演算子(+,−)や空白を入れて'(_評価文,_式), '100になる小町算の解'(_式). '□1□2□3□4□5□6□7□8□9 の□に四則の演算子(+,−)や空白を入れて'(_評価文,_式) :- 演算子や空白を適用して評価文を得る(_評価文), 評価文から式を得る(_評価文,_式). 演算子や空白を適用して評価文を得る(_評価文) :- 演算子や空白を適用して([_符号1,_符号2,_符号3,_符号4,_符号5,_符号6,_符号7,_符号8,_符号9]), 評価文を得る(_符号1,_符号2,_符号3,_符号4,_符号5,_符号6,_符号7,_符号8,_符号9,_評価文). 評価文を得る(_符号1,_符号2,_符号3,_符号4,_符号5,_符号6,_符号7,_符号8,_符号9,_評価文) :- atomic_list_concat([_符号1,1,_符号2,2,_符号3,3,_符号4,4,_符号5,5,_符号6,6,_符号7,7,_符号8,8,_符号9,9],_評価文). 評価文から式を得る(_評価文,_式) :- read_term_from_atom(_評価文,_式,[]). 演算子や空白を適用して([]). 演算子や空白を適用して(_符号ならび) :- 演算子や空白を適用して行く(_符号ならび). 演算子や空白を適用して行く([_符号|_残りならび]) :- member(_符号,[+,-,'']), 演算子や空白を適用して(_残りならび). '100になる小町算の解'(_式) :- 100 is _式.