0
点赞
收藏
分享

微信扫一扫

PYTHON做题复盘

律楷粑粑 2024-05-10 阅读 10
python算法

1、关于递归的代码

    #会返回None的错误代码
    while len(string)<=1:
        return True
    else:
        if string[0]!=string[-1]:
            return False
        else:
            string = string[1:-1]
    #正确
    while len(string) > 1:
        if string[0] != string[-1]:
            return False
        else:
            string = string[1:-1]
    return True

错误原因:根本没有while-else这个结构。当字符串长度比1打的时候不会执行任何,只有当字符串长度小于1的时候才会执行循环体内部的结构。

2、编写一个程序,找出能被从1到给定数字n(包括n)的所有数字整除的最小正数(即最小公倍数)。

首先,掌握最基础的最大公约数(GCD)和最小公倍数(LCM)的概念。

def gcd(a, b):
    while b:
        a, b = b, a % b
    return a

def lcm(a, b):
    return a * b // gcd(a, b)

此问题的解决借助于

def smallest_multiple(n):
    if n < 1:
        return None
    result = 1
    for i in range(2, n + 1):
        result = lcm(result, i)
    return result
举报

相关推荐

0 条评论