计算时
math.factorial(100)
我得到:
933262154439441526816992388562667004907159682643816214685929638952175999932299156089414639761565182862536979208272237582 51185210916864000000000000000000000000L
为什么数字末尾有一个L?
L 表示它是
long
,而不是 int
。你看到它的原因是你正在看 repr
的
long
你可以使用
print math.factorial(100)
或
str(math.factorial(100))
如果你只想要号码
L
表示它是一个长整数
我相信您正在使用 BigInt,它在 Python 中被称为
long
- 它根据需要扩展并占用可变数量的 RAM。名称 long
可能会令人困惑,因为这在当今少数流行语言中表示特定的字节数。以下内容可以帮助您了解存储对象所需的字节数。
Python 2.6.2 (r262:71600, Aug 14 2009, 22:02:40)
[GCC 4.0.1 (Apple Inc. build 5493)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> import sys
>>> a = 1
>>> sys.getsizeof(a)
12
>>> import math
>>> sys.getsizeof(math.factorial(100))
84
>>> sys.getsizeof(math.factorial(200))
182
>>>
您可以使用阶乘计算器代码...
def factorial (number):
product=1;
for i in range(number):
product=product*(i+1)
return product
我没有Python,所以我没有测试代码。我保证这个功能一定能用。
def fact(n):
if n<=1:
print("Enter a positive no.")
else:
for i in range(n,1,-1):
n = n*(i-1)
return n
print(fact(int(input("Enter a number : "))))