用N-S图求解以下问题的算法。1求n!
N-S图求解算法:
-
将问题转化为子问题:n! = n * (n-1)!
-
划分阶段:每个子问题的规模都是 n-1。
-
确定状态:设f(n)为n的阶乘。
-
确定决策:每次决策可以选择计算n的阶乘或计算n-1的阶乘。
-
构建状态转移方程:f(n) = n * f(n-1),其中f(0)=1。
-
确定边界条件:f(0)=1。
-
求解问题:利用状态转移方程计算f(n)。
算法实现:
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n-1)
时间复杂度:O(n),空间复杂度:O(n)。
原文地址: https://www.cveoy.top/t/topic/ehUJ 著作权归作者所有。请勿转载和采集!