Python程序:找到一个数的阶乘(不使用递归)
阶乘是数学中一个很常见的概念,表示一个数的乘积,通常用一个感叹号“!”来表示。例如5的阶乘就是5! = 5 * 4 * 3 * 2 * 1 = 120。
在Python中,我们可以使用循环来计算一个数的阶乘,而不必使用递归。下面是一个简单的示例代码:
def factorial(n):
result = 1
for i in range(1, n+1):
result *= i
return result
print(factorial(5)) # 输出:120
在上面的示例代码中,我们定义了一个函数factorial,接收一个整数参数n。在函数中,我们使用一个for循环来计算n的阶乘,并将结果存储在result中,最后返回result。
我们可以通过调用factorial函数来计算任意数的阶乘,例如:print(factorial(10))会输出3628800,即10的阶乘。
这种方法的时间复杂度是O(n),空间复杂度为O(1),具有很好的效率。
与此同时,我们也可以手动输入计算的数,示例代码如下:
def factorial(n):
result = 1
for i in range(1, n+1):
result *= i
return result
n = int(input("请输入一个正整数:"))
print("%d的阶乘是%d" % (n, factorial(n)))
在上面的示例代码中,我们使用了Python的input函数来读取一个正整数,并将其存储在变量n中。然后,我们调用factorial函数来计算n的阶乘,并使用字符串格式化来输出结果。
我们可以输入任意正整数来计算其阶乘,例如:当我们输入5时,会输出5的阶乘是120。
结论
在Python中,我们可以使用循环来计算一个数的阶乘,这比使用递归更加高效且容易理解。我们可以使用函数来封装计算逻辑,也可以手动输入计算的数,从而实现各种需求。
极客笔记