Yufengi 2021-08-06 18:23 采纳率: 100%
浏览 95
已结题

python递归求和这么写为啥不行

# -*- coding:utf-8 -*-
class Solution:
    t = 0

    def jumpFloorII(self, number):
        if number > 1:
            self.t = self.t + int(self.jumpFloorII(number-1))
        else:
            self.t = 1
        return self.t

然后结果不管输多少都是1

  • 写回答

2条回答 默认 最新

  • 忍气吞声埋头苦干 2021-08-06 18:30
    关注

    因为你这个实际只执行了一次
    很好理解啊,第一次递归直接return了,就跑了一次,
    所以返回值是1,递归的深度需要用if语句来确定条件return ,你这个没有条件判断 直接就return了 递归失败。

    
    class Solution:
        t=0
    
        def jumpFloorII(self, number):
    
            if number>0:
    
                self.t += number
            else:
                return
            self.jumpFloorII(number-1)
    
    
    if __name__ == '__main__':
        a=Solution()
        a.jumpFloorII(3)
        print(a.t)
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 8月14日
  • 已采纳回答 8月6日
  • 创建了问题 8月6日

悬赏问题

  • ¥50 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?