栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

为什么带有if-elif语句的递归函数返回None?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

为什么带有if-elif语句的递归函数返回None?

当a == 1时,您会忘记一个基本情况:

def isPower(a,b):    if a == 1:        return True    if a % b != 0:        return False    elif isPower((a/b),b):        return True    else        return False

但是,这还有其他问题-如果a为0,则它​​将永远不会结束;如果b为0,则将得到除以零。

据我所知,这是一个详细的解决方案,适用于所有整数组合:

def isPower(a,b):    if a == 0 or b == 0:        return False    def realIsPower(a, b):        if a == 1: return True        elif a%b != 0: return False        elif realIsPower((a/b), b): return True        else: return False    return realIsPower(a, b)

编辑:我的代码不适用于a和b均为负的情况。我现在正在比较它们的绝对值。

EDIT2:愚蠢的我,x ^ 0 == 1,所以a == 1应该总是返回true。这也意味着在递归之前,我不必将a与b进行比较。谢谢@哈维尔。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/641419.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号