看到这个题目第一时间想到的是通过for循环来判断一下是否能够整除3,可以的话就一直除下去,判断最后是否为1,若为1,就说明是,返回True,否则返回True.

利用递归的方式如下:

        if n<=0:
            return False
        if n==1:
            return True
        if n%3!=0:
            return False
     n//=3
return isPowerOfThree(n) #注意递归的调用方式,若是在类里面,需要加self

利用整除法的方式如下:

        while n and n%3==0:
             n//=3
        return n==1

注意最后return n==1 是一个判断,若满足则返回True,否则返回False。