重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
函数递归调用的终止条件是参数n为0的时候,那你要保证n是整型。
创新互联建站长期为成百上千客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为西乡塘企业提供专业的网站制作、网站建设,西乡塘网站改版等技术服务。拥有十多年丰富建站经验和众多成功案例,为您定制开发。
阶乘本来就是整数的运算。
符点数是不精确的,不建议用==来判断是否和某个值相等,也即是n==0是基本上不会成立的。
前两个都封装成了函数。最后一个直接运行的。没有定义函数。
中间那个问题,是因为你忘记做类型转换,你试着运行这个number=int(number)。应该 就对了。
def recursion(n):
if n==1:
return 1
else:
return n*recursion(n-1)
list=[]
#定义一个空的列表,将调用递归函数生成的阶乘值追加到列表
print("将1-10的阶乘写入列表,使用sum函数求和") #显示效果明显
for i in range(1,11):
list.append(recursion(i))# 将调用递归函数生成的阶乘值追加到列表
print(sum(list)) #列表求和
sum_0=0
#显示效果明显,center(80,"*")标题放置位置
print("for循环直接调用递归函数求和".center(80,"*"))
for i in range(1,11):
sum_0 +=recursion(i)
print(sum_0)
这是1-10的阶乘求和,你可以参考下!
输出的结果
阶乘有一个经典的递归调用算法。以下是示例代码。
def jiecheng(n):
if n==1 or n==0:
return 1
return n*jiecheng(n-1)
print('5的阶乘为%s'%jiecheng(5))