首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么我的python递归函数返回None而不是boolean?

为什么我的python递归函数返回None而不是boolean?
EN

Stack Overflow用户
提问于 2018-06-08 04:14:47
回答 1查看 559关注 0票数 0

问题是:

写一个算法来确定一个数字是否“幸福”。

幸福数是由以下过程定义的数字:从任何正整数开始,用其数字的平方和替换该数字,然后重复该过程,直到该数字等于1 (它将停留在那里),或者它在不包括1的循环中无休止地循环。该过程以1结束的那些数字是幸福数。

代码语言:javascript
复制
Example: 

Input: 19
Output: true
Explanation: 
1^2 + 9^2 = 82
8^2 + 2^2 = 68
6^2 + 8^2 = 100
1^2 + 0^2 + 0^2 = 1

我的代码如下:

代码语言:javascript
复制
class Solution:
    def isHappy(self, n):

        x = sum(list(map(lambda a: int(a)**2, list(str(n)))))
        if x == 1:
            return True

        self.isHappy(x)

但是它在输入为19的情况下不起作用。程序在x == 1处终止,这意味着它在if条件下工作。但是它一直说它返回"Null“而不是True。为什么会这样呢?我假设我在递归中遗漏了什么...?

问题来源:https://leetcode.com/problems/happy-number/description/

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-08 04:20:16

当第一次迭代没有给出1作为sum时,您不会返回任何内容。将最后一行改为

代码语言:javascript
复制
return self.isHappy(x)

(然后你会发现,当你看到一个不满意的数字时,你的解决方案会进入无限循环。)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50749527

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档