二分法
def zbcz(a,start,end,k):
while start<=end:
middle=(start+end)//2
if k>a[middle]:#如果要查找的数比中间大
start=middle+1#那么向右查找
elif k<a[middle]:#如果查找的数字比中间小
end=middle-1#那么向左查找
elif k==a[middle]:#如果相等,那么返回此时的middle值
return middle
return -1 #如果循环结束还没查到次数,那么返回-1
a=[1,2,3,4,5,6,7,8,9,10]
n=int(input('请输入查找的数'))
x=zbcz(a,0,len(a)-1,n)#调用二分查找(也叫折半查找)函数,位置下标从零开始,到最后一个结束
if x==-1:
print('查找此人')
else:
print(n,'的位置是',x)
斐波那契列数
输入月份,返回该月兔子个数:
def tuzi(n):
if n==1 or n==2:
return 1
else:
return tuzi(n-1)+tuzi(n-2)
n=int(input('输入月份'))
print(n,'月的兔子数是',tuzi(n))
输入月份,返回当月以及之前每月的兔子个数。(接收一个参数,返回一个存着等量值的列表)
n=int(input('输入月份'))
def func(n):
a,b=1,1
for i in range(1,n+1):
if i==1 or i==2:
print(1,end='\t')
else:
a,b=b,a+b
print(b,end='\t')
func(n)