• 大小: 3KB
    文件类型: .py
    金币: 2
    下载: 0 次
    发布日期: 2024-01-31
  • 语言: Python
  • 标签: 24点  python  

资源简介

利用python编写的24点计算程序,能找出所有种类的结果。

资源截图

代码片段和文件信息

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)

评论

共有 条评论