python算法工程师编程练习一(个人搜集)

这篇博客展示了多个Python编程中涉及的算法实例,包括阶乘计算、最大公约数、质数统计、冒泡排序、选择排序、插入排序等。此外,还涵盖了利润提成计算、浮点数类型检查、日期处理、斐波那契数列、水仙花数和完数的查找。同时,博主分享了关于数字分解质因数、字符串操作以及特定图案的打印方法。
摘要由CSDN通过智能技术生成

#求阶乘

def ff(n):
    jc=1
    for i in range(1, n+1):

        # print(str(i)+'das')
        jc = i * jc
    return jc

#求两数最大公约数

def gys(n1, n2):
    i=2
    A = []
    B =max(n1,n2)

    while i< B :
        if n1 % i == 0 and n2 % i == 0:
            A.append(i)
        i+=1
    print(max(A))
    print(min(A))

gys(6,9)

#计算100-300内的质数,并统计个数

def zs():
    B= []
    m=0
    for i in range(100, 301):
        fm = 1    # 每个i都要复位一下判断符fm
        for j in range(2,i):
            if i%j==0:
                fm += 1

        if fm == 1:
            B.append(i)
            m += 1
    print(B)
    print(m)

zs()

#利用冒泡进行排序

def mp(A):
    for i in range(len(A)-1):
        for j in range(len(A)-i-1):
            if A[j] > A[j+1]:
                A[j+1], A[j] = A[j], A[j+1]

    return A

print(mp([1104,2,8587,744,415,10]))

#选择排序

def xz(A):

    for i in range(len(A)-1):
        for j in range(len(A)-i):
           if A[j] == max(A[:(len(A)-i)]):
                A[len(A)-1-i], A[j] = A[j], A[len(A)-1-i]
    return(A)

B=[114,2,8587,744,415,10]

if B[2] == max(B[:len(B)-2]):

print(B[:len(B)-2])

print(max(B[:len(B)-2]))

A = [114, 2, 8587, 744, 8587,415, 8587, 10]

print(xz(A))

#插入排序 …

def cr(arr):
    for i in range(1, len(arr)):
        key = arr[i]
        j = i - 1
        while j >= 0 and key < arr[j]:
            arr[j + 1] = arr[j]
            j -= 1
        arr[j + 1] = key
    return arr

    # 左移两位
    # arr =[114,2,8587,744,8587,415,10]
    # print(arr)
    # arr[:] = arr[2:] + arr[:2]
    # print(arr)

#有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?

def sz():
    m=0
    for i in range(1, 
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值