算法课笔记(1)-递归实现全排列与整数的划分
程序员文章站
2024-03-18 09:07:22
...
递归实现全排列
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)
整数的划分
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))
上一篇: 关于for与while循环的区别我的理解
下一篇: 全排列递归实现算法