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中,我们可以使用循环来计算一个数的阶乘,这比使用递归更加高效且容易理解。我们可以使用函数来封装计算逻辑,也可以手动输入计算的数,从而实现各种需求。