第一题:
aDict = {0:1,1:1}
def fib(n):
if n in aDict:
return aDict[n]
else:
newValue = fib(n-1)+fib(n-2)
aDict[n] = newValue
return aDict[n]
def PrintFN(m,n):
temp = 0
aList = []
while True:
number = fib(temp)
if number >= m:
if number <= n:
aList.append(number)
else:
return aList
temp+=1
思考:temp+=1 不是number
第二题:
import math
def getCircleArea(r):
return math.pi*r*r
def get_rList(n):
aList = []
for i in range(n):
aList.append(int(input()))
return aList
第三题:
def giveChange(money):
ten = 0
five = 0
one = 0
temp = money
while True:
if ten*10 <= money:
ten+=1
else:
break
ten-=1
money -= ten*10
while True:
if five*5 <= money:
five+=1
else:
break
five-=1
money -= five*5
while True:
if one*1 <= money:
one+=1
else:
break
one-=1
print('{} = {}*10 + {}*5 + {}*1'.format(temp,ten,five,one))
思考: <=
方式二:
def giveChange(money):
temp = money
ten = money // 10
money -= ten*10
five = money // 5
money -= five*5
one = money
print('{} = {}*10 + {}*5 + {}*1'.format(temp,ten,five,one))
思考:巧用运算符!!!
第四题:
def isHd(n):
n = str(n)
aList = list(n)
Max = sorted(aList,reverse = True)
Min = sorted(aList,reverse = False)
Max = int(''.join(Max))
Min = int(''.join(Min))
result = Max – Min
if str(result) == n:
return True
else:
return False
第五题:
def create():
aList = [i+j for i in suit for j in d]
return aList
def shufflecard(pokers):
random.shuffle(pokers)
return pokers
def deal(pokers,n):
result = []
for i in range(5):
temp = pokers[n+i*4-1]
result.append(temp)
print('第{}个玩家拿到的牌是:{}'.format(n,','.join(result)))
第六题:
a = list(map(int,input().split()))
def f(a):
def m(a):
return max(a)
def n(a):
return min(a)
print('Max+Min={}'.format(m(a) + n(a)))
f(a)