最近兴趣所向,研究Python,写了些经典问题代码,网友们看看,欢迎批评指正
##全排列
##取任意一个元素
##记录这个元素
##剩下的生成一个新的list
##取任意一个元素
##记录这个元素
##剩下的生成一个新的list
##......
##直到新的list有且只有一个元素
##记录这个元素
##合并之前记录的元素
def recursion(x,y,z):
lens = len(y)
if lens == 1:
x = x + y[0]
z.append(x)
for i in range(0,lens):
x0 = y[i]
y0 = y.copy()
y0.remove(x0)
x0 = x + x0
recursion(x0,y0,z)
list0 = ['1','2','3','4','5','6']##输入序列
list1 = []##全排列
recursion('',list0,list1)
print(list1)
print(len(list1))
# 求素数
import math
p = [2] #素数表
for a in range(2,10000):
for b in p:
c = a % b
if( c == 0):
break
c = 1 #标记
if(b > math.sqrt(a)):
break #大于某数的平方根就不可能找到素数了
if c > 0:
p.append(a)
print(a)
def getcount(months):
count = 0
if(months <= 2):#不足两个月生不出来
return count
for i in range(1,months + 1):
if(i == 1 or i == 2):
continue #前两个月不生
count = count + 1
count = count + getcount(months + 1 - i) #看刚生下的这对兔子能生多少
return count
##友情提醒 不要写太久 我这台电脑40个月就要等待了
months = int(input("你准备让这对兔子活多少个月?"))
count = 0
count = 1 + getcount(months)
print(count)