在Python中计算阶乘

问题描述 投票:0回答:5

计算时

math.factorial(100)

我得到:

933262154439441526816992388562667004907159682643816214685929638952175999932299156089414639761565182862536979208272237582 51185210916864000000000000000000000000L

为什么数字末尾有一个L?

python syntax integer python-2.x
5个回答
15
投票

L 表示它是

long
,而不是
int
。你看到它的原因是你正在看
repr
long

你可以使用

print math.factorial(100)

str(math.factorial(100))

如果你只想要号码


3
投票

L
表示它是一个长整数


1
投票

我相信您正在使用 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
>>> 

0
投票

您可以使用阶乘计算器代码...

def factorial (number):
    product=1;
    for i in range(number):
        product=product*(i+1)
    return product

我没有Python,所以我没有测试代码。我保证这个功能一定能用。


0
投票

使用 for 循环的 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 : "))))
© www.soinside.com 2019 - 2024. All rights reserved.