# 斐波拉契数列
def fib(n):
a,b=1,1
while a<n:
print(a,end=' ')
a,b=b,a+b
fib(100)
print()
# 因数分解
from random import randint
def factors(num):
for i in range(2,int(num**0.5)+1):
if num%i==0:
facs.append(i)
factors(num//i)
break
else:
facs.append(num)
facs=[]
n=randint(2,10**8)
factors(n)
result='*'.join(map(str,facs))
if n==eval(result):
print(n,'='+result)
#
#def do(a,b=1,c)
#生成斐波那契数列
def fib():
a,b=1,1
while True:
yield a
a,b=b,a+b
a=fib()
for i in range(10):
print(next(a))
#打印杨辉三角
def yanghui(t):
print('[1]'.center(40))
line=[1,1]
print(str(line).center(40))
for i in range(2,t):
r=[]
for j in range(0,len(line)-1):
r.append(line[j]+line[j+1])
line=[1]+r+[1]
print(str(line).center(t*4))
yanghui(10)
# 将一个正偶数分解成两个素数
def IsPrime(p):
if p==2:
return True
if p%2==0:
return False
for i in range(3,int(p**0.5)+1,2):
if p%i==0:
return False
return True
t=10
if isinstance(t,int) and t>0 and t%2==0:
for i in range(2,t//2+1):
if IsPrime(i) and IsPrime(t-i):
print(i,'+',t-i,'=',t)
else:
print('无')
else:
print("该数不是正偶数")
# 求黑洞数:数字每位上的数字组成的最大数减去最小数等于
# 这个数
def heidong(n):
start=10**(n-1)
end=10**n
for i in range(start,end):
big=''.join(sorted(str(i),reverse=True))
little=''.join(sorted(big))
big,little=map(int,(big,little))
if big-little==i:
print(i)
n=3
heidong(n)
# 冒泡排序:
def bubble_sort(array):
for i in range(1,len(array)):
for j in range(0,len(array)-i):
if array[j]>array[j+1]:
array[j],array[j+1]=array[j+1],array[j]
return array
array=[1,2,3,48,9,5,3,56,78]
print(bubble_sort(array))
#选择排序
def xuanze(array):
newarr=[]
for i in range(len(array)):
minIndex=array.index(min(array))
newarr.append(array.pop(minIndex))
return newarr
array=[1,2,3,41,2,3,4,2,3,4,2,4,89,78]
print(xuanze(array))
# 二分法查找
# 普通查找
def binary_search_normal(arr,data):
arr.sort()
start,end=0,len(arr)-1
while start<=end:
mid_index=(start+end)//2
if array[mid_index]==data:
return True
if data>array[mid_index]:
start=mid_index+1
else:
end=mid_index-1
return False
array=[1,2,3,4,6,74,6,8]
print(binary_search_normal(array,3))
# 递归法查找
def binary_search(arr,data):
if len(arr)==0:
return False
arr.sort()
mid_index=len(arr)//2
if arr[mid_index]==data:
return binary_search(arr[mid_index+1:],data) \
if data>arr[mid_index] \
else binary_search(arr[:mid_index],data)binary_search(arr[:mid_index],data)
array=[1,2,4,5,62,4,6,8,96,86,6]
print(binary_search(array,86))
考前基本方法的练习
猜你喜欢
转载自blog.csdn.net/m0_51461030/article/details/121511160
今日推荐
周排行