こんにちは、こんなのはどうでしょう?
お題:
任意の値の異なる1桁の数値4つが与えられたとき、
四則演算(+、−、×、÷)を使用して計算結果を
10にする。
機能が不十分ですが、pythonでのサンプル
# 以下、不十分な点:
# * 「×、÷」が「+、−」より優先されていない。
# * 4つの数値が与えられた時の順番を維持したまま計算している。
例のごとく、他にGoodなものがありましたら遠慮なくよろしくです。
--^ ticket.py
def core(s,t,l):
if len(l) > 0:
core('%s+%d'%(s,l[0]),t+l[0],l[1:])
core('%s-%d'%(s,l[0]),t-l[0],l[1:])
core('%s*%d'%(s,l[0]),t*l[0],l[1:])
if t%l[0] == 0:
core('%s/%d'%(s,l[0]),t/l[0],l[1:])
else:
if t == 10: print '%d: %s'%(t,s)
def main(l):
core(str(l[0]),l[0],l[1:])
if __name__ == '__main__':
n = [8,4,2,1]
main(n)
--$
実行方法:python ticket.py
実行結果
--^
10: 8+4-2*1
10: 8+4-2/1
--$
-- ぬ