python的选择排序、冒泡排序、水仙花、斐波那契及鸡兔同笼

冒泡排序:

#冒泡排序(降序)
#冒泡排序要排序n个数,由于每遍历一趟只排好一个数字,
#则需要遍历n-1趟,所以最外层循环是要循环n-1次,而
#每次趟遍历中需要比较每归位的数字,则要在n-1次比较
#中减去已排好的i位数字,则第二层循环要遍历是n-1-i次
bb=[6,5,8,2,45,3,9]
for ii in range(len(bb)-1):
    for jj in range(len(bb)-1-ii):
        if (bb[jj+1]>bb[jj]):
            temp=bb[jj]
            bb[jj]=bb[jj+1]
            bb[jj+1]=temp
print(bb)

选择排序:

#选择排序(升序)
#先从序列中,找到最小的元素,放在第一个位置
#之后找到第二小的元素,放在第二个元素,以此类推
bb=[6,5,8,2,45,3,9]
for i in range(len(bb)-1):
    min=i
    #遍历一次找到一个最小值下标
    for j in range(i+1,len(bb)):  #这里的range()前闭后开,若要取到len(bb)-1第二个参数只能为len(bb)
        if(bb[min]>bb[j]):
            #将最小的值赋给bb[min]
            temp1=bb[j]
            bb[j]=bb[min]
            bb[min]=temp1
print(bb)

 水仙花:

#水仙花数(自恋数)
# 一个数的各位数的3次幂的和等于它本身
j=[]
for i in range(100,1000):
    a=i%10
    b=(i//10)%10
    c=i//100
    if(i==a**3+b**3+c**3):
       j.append(i)
print(j)
print(879 in j)

鸡兔同笼:

#鸡兔同笼
a=120 #
b=350 #
for x in range(1,a):#x为鸡的头数
    y=a-x #兔子数量
    if(2*x+4*y==350):
        print("鸡有{}只,兔有{}只 ".format(x,y))

斐波那契:

#自定义迭代器feibo(n)
def feibo(n):
    a,b,count=1,1,1
    while True:
        if(count>n):
            return
        yield a
        a,b=b,a+b
        count+=1
iter1=feibo(10)
while True:
    try:
        print(next(iter1),end=" ")
    except StopIteration:

        break

print("\n")

 

转载于:https://www.cnblogs.com/jiujianyaoge/p/10818569.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值