資源簡介
利用python編寫的24點(diǎn)計(jì)算程序,能找出所有種類的結(jié)果。
代碼片段和文件信息
from?itertools?import?*
def?gcd(ab):
if(b?==?0):
return?a
return?gcd(ba?%?b)
def?num_den_init():
global?num
global?den
num?=?list(store)
den?=?[1]?*?big
def?f(abcd):
global?num
global?den
if?c?==?‘+‘:
temp_den?=?den[a]?*?den[b]
temp_num?=?num[a]?*?den[b]?+?num[b]?*?den[a]
elif?c?==?‘-‘:
temp_den?=?den[a]?*?den[b]
temp_num?=?num[a]?*?den[b]?-?num[b]?*?den[a]
elif?c?==?‘*‘:
temp_den?=?den[a]?*?den[b]
temp_num?=?num[a]?*?num[b]
elif?c?==?‘/‘:
if(num[b]?==?0):
raise?ZeroDivisionerror
temp_den?=?den[a]?*?num[b]
temp_num?=?num[a]?*?den[b]
temp_gcd?=?gcd(temp_dentemp_num)
num[d]?=?temp_num?/?temp_gcd
den[d]?=?temp_den?/?temp_gcd
return;
big?=?4;
store?=?[None]?*?big;
num?=?[None]?*?big;
den?=?[None]?*?big;
op?=?[‘+‘‘-‘‘*‘‘/‘];
for?i?in?range(big):
store[i]?=?input(“Please?input:?“)
store.sort()
per?=?permutations(store)
lala?=?[]
for?i?in?per:
if?not?i?in?lala:
lala.append(i)
#print?lala
for?loop?in?lala:
store?=?list(loop)
for?i?in?range(4?**?3):
v?=?i
c3?=?v?%?4
v?/=?4
c2?=?v?%?4
v?/=?4
c1?=?v?%?4
result?=?(store[0]op[c1]store[1]op[c2]store[2]op[c3]store[3])
#first:?(((01)2)3)
num_den_init();
try:
f(01op[c1]1)
f(12op[c2]2)
f(23op[c3]3)
評論
共有 條評論