欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

算法课笔记(1)-递归实现全排列与整数的划分

程序员文章站 2024-03-18 09:07:22
...

递归实现全排列

算法课笔记(1)-递归实现全排列与整数的划分

def arrange(lst, start, end):
    if start == end:
        print(lst)
    else:
        for i in range(start, end+1):
            lst[start], lst[i] = lst[i], lst[start]
            arrange(lst, start+1, end)
            lst[start], lst[i] = lst[i], lst[start]
lst = list("abc")
arrange(lst, 0, 2)

整数的划分

算法课笔记(1)-递归实现全排列与整数的划分

def divide(n, m):
    if n == 1 or m == 1:
        return 1
    elif n < m:
        return divide(n, n)
    elif n == m:
        return 1+divide(n, m-1)
    elif n > m and m > 1:
        return divide(n, m-1) + divide(n-m, m)
print(divide(6, 6))