python实现函数的递归调用例题

例一

利用函数的递归调用,求 s = 1!+2!+3!+4!+5!+...+n!。其中n在主函数用input赋值。返回最后的计算结果s,并在命令行用print函数输出“s = 1!+2!+3!+4!+5!+...+n!=  ”

def f(n):  
    if n == 0:  
        return 1  
    else:  
        return n * f(n-1)  
  
def sum_f(n):  
    if n == 0:  
        return 0  
    else:  
        return f(n) + sum_f(n-1)  
  
n = int(input("请输入一个整数:"))  
s = sum_f(n)  
print("s = 1!+2!+3!+4!+5!+...+n! = %d"%s)

 f函数是用于计算阶乘的,而sum_f函数则是用于计算一系列阶乘的和的

例二

利用函数的嵌套和递归调用,求s = 1^2 + 2^3 + 3^4 + ... + n^(n+1)

其中n在主函数用input赋值。返回最后的计算结果s,并在命令行输出结果

def f(n):
    if n == 1:
        return 1
    else:
        def sum_f(n):
            return (n ** (n+1))
    return f(n-1) + sum_f(n)
n = eval(input())
s = f(n)
print(s)

f函数是用于计算次方的,而sum_f函数则是用于计算一系列次方的和的 

倘若不嵌套函数,则如下

def f(n):
    if n == 1:
        return 1
    else:
        return (n ** (n+1))
def sum_f(n):
    if n == 1:
        return 1 
    else:
        return sum_f(n-1) + f(n)
n = eval(input())
s = sum_f(n)
print(s)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值