加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 找出a是否是b的幂

发布时间:2020-12-16 23:29:22 所属栏目:Python 来源:网络整理
导读:我目前正在使用singpath.com来练习我的 python,但是我遇到了一个问题: 数字a是b的幂,如果它可被b整除,a / b是b的幂. 编写一个名为is_power的函数,它接受参数a和b,如果a是b的幂,则返回True. def is_power(a,b): c = a/b if (((a%b) == 0) and ((c%b) == 0)):
我目前正在使用singpath.com来练习我的 python,但是我遇到了一个问题:

数字a是b的幂,如果它可被b整除,a / b是b的幂.
编写一个名为is_power的函数,它接受参数a和b,如果a是b的幂,则返回True.

def is_power(a,b):
    c = a/b
    if (((a%b) == 0) and ((c%b) == 0)):
        return True
    else:
        return False

以上是我的解决方案,但系统提示我概括我的解决方案.
谁能告诉我我的解决方案有什么问题?

解决方法

您的原始代码不起作用的原因如下:您只需检查(c%b)== 0)又名(a / b)可被b整除,这比a / b强大得多b定义的一部分.

当你想要解决这样的问题时,你应该始终从琐碎的案例开始.在这种情况下,有两种情况:is_power(x,x)和is_power(1,x) – 答案都是True,因为x ** 1 == x和x ** 0 == 1.

一旦涵盖了这些案例,您只需要记下定义的其余部分.编写(a可被b整除)和(a / b是b的幂)的代码并将它们放在一起.

最终的功能如下所示:

def is_power(a,b):
    if <trivial case 1> or <trivial case 2>:
        return True
    # its a recursive definition so you have to use `is_power` here
    return <a is divisible by b> and <a/b is a power of b>

剩下的唯一问题是如何回答< a / b是b的力量>.最简单的方法是使用函数is_power本身 – 这称为递归.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读