python计算n的阶乘的方法代码
整数的阶乘(英语:factorial)是所有小于及等于该数的正整数的积,0的阶乘为1。即:n!=1×2×3×...×n。
首先导入math模块,然后调用factorial()函数来计算阶乘。
1 math.factorial(x)
import math
value = math.factorial(x)
2. reduce函数
def factorial(n):
return reduce(lambda x,y:x*y,[1]+range(1,n+1))
3. 递归实现
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n - 1)
以上就是python如何计算n的阶乘的详细内容,感谢大家的学习和对我们的支持。
时间: 2019-10-22
阶乘:也是数学里的一种术语:阶乘指从1乘以2乘以3乘以4一直乘到所要求的数:在表达阶乘时,就使用"!"来表示.如h阶乘,就表示为h!:阶乘一般很难计算,因为积都很大. 提问:求1+2!+3!+...+20!的和,如果输入非正整数或者字符等就输出"输入有误,请输入正整数" 程序 #测试2 第二题 阶乘累加和 x = input() if x.isdigit(): a = eval(x) s = 0 b = 1 if a >0 and a%1 == 0: for
第一种:利用functools 工具处理 import functools result = (lambda k: functools.reduce(int.__mul__, range(1, k + 1), 1))(5) print(result) 第二种:普通的循环 x = 1 y = int(input("请输入要计算的数:")) for i in range(1, y + 1): x = x * i print(x) 第三种:利用递归的方式 def func(n): if n
方法一:使用while循环来计算 n = int(input()) jie = 1 sum = 0 i = 1 while n >= i: jie = jie * i sum = sum + jie i = i + 1 print(sum) 方法二:使用递归函数调用阶乘方法求和(其中n的值在1~40之间) def jie(n): if n == 1: return 1 else: return n*jie(n-1) n = int(input()) sum = 0 if n < 1 or n
本文实例讲述了python计算方程式根的方法.分享给大家供大家参考.具体实现方法如下: ''' roots = polyRoots(a). Uses Laguerre's method to compute all the roots of a[0] + a[1]*x + a[2]*x^2 +...+ a[n]*x^n = 0. The roots are returned in the array 'roots', ''' from evalPoly import * from numpy i
本文实例讲述了python计算圆周率pi的方法.分享给大家供大家参考.具体如下: from sys import stdout scale = 10000 maxarr = 2800 arrinit = 2000 carry = 0 arr = [arrinit] * (maxarr + 1) for i in xrange(maxarr, 1, -14): total = 0 for j in xrange(i, 0, -1): total = (total * j) + (scale * a
本文实例讲述了Python计算字符宽度的方法.分享给大家供大家参考,具体如下: 最近在用python写一个CLI小程序,其中涉及到计算字符宽度,目标是以友好的方式将一个长字符串截取为等宽的片段. 对于unicode字符,python的len函数可以准确的计算其中所包含的字符个数,但是个数并不代表宽度,如: >>>len(u'你好a') 3 因此无法简单的使用这种方式来计算宽度. GBK decode 首先我想到GBK编码,00–7F范围内的字符是一字节编码,其余是双字节编码,正好与字符的
asin()方法返回x的反正弦,以弧度表示. 语法 以下是asin()方法语法: asin(x) 注意:此函数是无法直接访问的,所以我们需要导入math模块,然后需要用math的静态对象来调用这个函数. 参数 x -- 这必须是在-1到1的数字值的范围内,如果x大于1,则它会产生一个错误. 返回值 此方法返回的x反正弦,以弧度表示. 例子 下面的例子显示了asin()方法的使用. #!/usr/bin/python import math print "asin(0.64) : ",
acos()方法返回x的反余弦值,以弧度表示. 语法 以下是acos()方法的语法: acos(x) 注意:此函数是无法直接访问的,所以我们需要导入math模块,然后需要用math的静态对象来调用这个函数. 参数 x -- 这必须是在范围内的数字值-1到1,如果x大于1,则它会产生一个错误. 返回值 此方法返回的X反余弦,以弧度表示. 例子 下面的例子显示acos()方法的使用. #!/usr/bin/python import math print "acos(0.64) : ",
atan()方法返回x的反正切值,以弧度表示. Syntax 以下是atan()方法的语法: atan(x) 注意:此函数是无法直接访问的,所以我们需要导入math模块,然后需要用math的静态对象来调用这个函数. 参数 x -- 这必须是一个数值. 返回值 此方法返回 x 的反正切值,以弧度表示. 例子 下面的例子显示atan()方法的使用. #!/usr/bin/python import math print "atan(0.64) : ", math.atan(0.64) pr
本文实例讲述了python计算时间差的方法.分享给大家供大家参考.具体分析如下: 1.问题: 给定你两个日期,如何计算这两个日期之间间隔几天,几个星期,几个月,几年? 2.解决方法: 标准模块datetime和第三方包dateutil(特别是dateutil的rrule.count方法)能非常简单迅速的帮你解决这个问题. from dateutil import rrule import datetime def weeks_between(start_date, end_date): week