大家一起学python(10)
分享几道python基础逻辑题
#通过递归函数实现任意数的阶乘
def jiecheng(num):
if num ==1:
return num
else:
return num*jiecheng(num -1)
jiecheng(3)
#斐波那契数列[1,1,2,3,5,8,13,...],输入一个数列的位置数,返回斐波那契数列相应位置的值
def feibo(num):
if num ==1 or num ==2:
return 1
else:
return feibo(num-1)+feibo(num-2)
print(feibo(4))
#第三个月起每个月都生一对兔子小兔子到第三个月后每个月又生一对兔子,假如兔子不死,问每个月兔子的总数
#1,1,3,5,11,21,43
def rabbit(month):
if month ==1 or month ==2:
【大家一起学python(10)】return 1
else:
return rabbit(month-1)+2*rabbit(month-2)
print(rabbit(6))
#小明有一百块钱,打算买100本书,A书5元一本,B书3元一本,c书1元2本,小明一共有多少种买法
def xiaoming(money,book):
num =0
for ain range(int(money/5)):
for bin range(int(money/3)):
for cin range(book+1):
if a+b+c==bookand 5*a+3*b+0.5*c<=100:
num+=1
return num
print(xiaoming(100,100))
#N个人围成一圈,从第一个开始报数,第M个将被杀掉,最后剩下一个,其余人都将被杀掉。
# 例如N=6,M=5,被杀掉的顺序是:5,4,6,2,3,1。.
def josephus(n,k):
#n代表总人数,k代表报数的数字
List =list(range(1,n+1))
index =0
while List:#如果list不等于0就可以一直循环
temp = List.pop(0)
index+=1
if index==k:
print("sorry,你挂了 " +str(temp))
index=0
continue
List.append(temp)
if len(List)==1:
print("幸运儿是你:"+str(List))
break
josephus(6,5)
推荐阅读
- 慢慢的美丽
- 开学第一天(下)
- 奔向你的城市
- 学无止境,人生还很长
- 由浅入深理解AOP
- 前任
- “成长”读书社群招募
- 继续努力,自主学习家庭Day135(20181015)
- python学习之|python学习之 实现QQ自动发送消息
- 每日一话(49)——一位清华教授在朋友圈给大学生的9条建议