24,26两题怎么解。尤其是26题,看不懂,那个Y是怎么来的。这个题是《python入门经典》上第二章的练习题。
这书的题很搞。
python作业,遇到难题了。请帮忙。
-
- 帖子: 1038
- 注册时间: 2007-01-10 9:32
- astolia
- 论坛版主
- 帖子: 6703
- 注册时间: 2008-09-18 13:11
Re: python作业,遇到难题了。请帮忙。
24太长了不看。26不就一小学奥数题么
ABCD + EFGB = EFCBH,ABCDEFGH都是0~9的数字且各不相同,求ABCDEFGH各是什么
ABCD + EFGB = EFCBH,ABCDEFGH都是0~9的数字且各不相同,求ABCDEFGH各是什么
-
- 帖子: 3
- 注册时间: 2014-06-13 16:39
- 系统: Ubuntu/Win7
Re: python作业,遇到难题了。请帮忙。
刚学习Python,24解答,请轻拍
代码: 全选
#!env python
# Filename: palindrome.py
'''This try to find the suit mileage
for car that can be palindrome'''
# 翻转列表
def reverse(s):
return s[::-1]
# 检查是否回文列表
def ispalindrome(miles):
return reverse(miles) == miles
# 生成6位回文列表
def gen6bits():
for s in [[i,j,k] for i in range(0,10) for j in range(0,10) for k in range(0,10)]:
yield s + reverse(s)
# 借位减一
def minusone(l1,size):
ltt = l1[:]
for i in range(size-1,-1,-1):
if ltt[i] != 0:
ltt[i] -= 1
break
else:
ltt[i] = 9
return ltt
if __name__ == '__main__':
print("Car mileage measure")
# all 6 numbers finally is a palindrome
# So 1st get the final number to return back check
# To generate a 6bits paralindromes, just need to play
# all 3bits value and mirror it
for s in gen6bits():
# 6bits palindrome - 1
bits = s[:]
m1 = minusone(bits,6)
m1a = m1[1:-1]
if not ispalindrome(m1a):
#middle 4 can be a palindrome
continue
m2 = minusone(m1,6)
m2a = m2[1:]
if not (ispalindrome(m2a)):
continue
m3 = minusone(m2,6)
print(" m3",m3)
m3a = m3[2:]
m3b = m3[1:]
if not ispalindrome(m3a) or ispalindrome(m3b):
continue
print("last",s)
-
- 帖子: 3
- 注册时间: 2014-06-13 16:39
- 系统: Ubuntu/Win7
Re: python作业,遇到难题了。请帮忙。
参考各路大神,语法还不熟
代码: 全选
#!env python
# Filename: mismath.py
''' SEND
+ MORE
-------
MONEY
'''
# all bits is 'D E M N O R S Y'
# so for brute force, we need generate 8 bits from 10 digits
#def gens(bits):
# global s
# for i in range(0,bits):
# s.append(0)
# return s
s = []
sets = list(range(0,10));
def pmath(s):
print(' {0}{1}{2}{3}\n + {4}{5}{6}{7}\n ---------\n {8}{9}{10}{11}{12}'.format(s[6],s[1],s[3],s[0],s[2],s[4],s[5],s[1],s[2],s[4],s[3],s[1],s[7]))
print
def gens(bits):
global s
s = []
for i in range(0,bits):
s.append(0)
return 0
def genseq(bits):
'''default 8 bits sequence:
D E M N O R S Y
0 1 2 3 4 5 6 7
(S+M-O)*1000+(E+O-N)*100+(N+R-E)*10+(D+E-Y) == M*10000
'''
global s
global sets
if (bits == 0):
if (s[6]+s[2]-s[4])*1000\
+(s[1]+s[4]-s[3])*100\
+(s[3]+s[5]-s[1])*10\
+(s[0]+s[1]-s[7]) \
== s[2]*10000:
pmath(s)
return 0
for i in range(0,len(sets)):
#print(s,'<',i,'>',sets)
bs = sets[0]
s[bits-1] = bs
sets.remove(bs)
genseq(bits-1)
sets.append(bs)
gens(8)
genseq(8)
-
- 帖子: 1038
- 注册时间: 2007-01-10 9:32
Re: python作业,遇到难题了。请帮忙。
和和,谢谢。
我刚学编程。
刚学习Pyth
我刚学编程。
刚学习Pyth