鱼C论坛

 找回密码
 立即注册
查看: 4083|回复: 61

[已解决]Python:每日一题 254

[复制链接]
发表于 2019-10-9 19:47:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 zltzlt 于 2019-10-10 20:30 编辑

今天来道简单的题吧



今天的题目:


给定一个整数,写一个函数来判断它是否是 3 的幂次方
注意:为了提高鱼油们的积极性,前 10 位答对的鱼油才有奖哦~

难度:★★☆☆☆

示例 1:

输入: 27
输出: True
示例 2:

输入: 0
输出: False
示例 3:

输入: 9
输出: True
示例 4:

输入: 45
输出: False


欢迎大家一起答题!
最佳答案
2019-10-9 22:21:55
  1. def isPowerThree(num):
  2.     if num <= 0:
  3.         return False

  4.     if num == 1:
  5.         return True
  6.    
  7.     while num > 1:
  8.         if not num % 3 == 0:
  9.             return False
  10.         else:
  11.             num /= 3

  12.     return True

  13. if __name__ == '__main__':
  14.     print(isPowerThree(45))
复制代码

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-10-9 20:06:35 | 显示全部楼层
本帖最后由 塔利班 于 2019-10-9 20:10 编辑
  1. return __import__('math').log(x,3)%1==0 if x>0 else False
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-9 20:06:52 | 显示全部楼层
小白看看大神怎么写的,哈哈哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-9 20:09:04 | 显示全部楼层
本帖最后由 zltzlt 于 2019-10-10 18:37 编辑

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-9 20:37:18 | 显示全部楼层
  1. def func(num):
  2.     if num <= 0:
  3.         print('False')
  4.     else:
  5.         while True:
  6.             if num % 3 != 0:
  7.                 print('False')
  8.                 break
  9.             else:
  10.                 num = num / 3
  11.                 if num == 1:
  12.                     print('True')
  13.                     break
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-9 20:39:46 | 显示全部楼层

解答错误

输入:1
输出:False
预期结果:True
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-9 20:55:26 | 显示全部楼层
zltzlt 发表于 2019-10-9 20:39
解答错误

输入:1
  1. def func(num):
  2.     if num <= 0:
  3.         print('False')
  4.     elif num > 0 and num < 1:
  5.         while True:
  6.             if num == 1:
  7.                 print('True')
  8.                 break
  9.             else:
  10.                 num = num * 3
  11.                 if num > 1:
  12.                     print('False')
  13.                     break
  14.     elif num == 1:
  15.         print('True')
  16.     else:
  17.         while True:
  18.             if num % 3 != 0:
  19.                 print('False')
  20.                 break
  21.             else:
  22.                 num = num / 3
  23.                 if num == 1:
  24.                     print('True')
  25.                     break
复制代码

评分

参与人数 1荣誉 +1 鱼币 +1 贡献 +1 收起 理由
zltzlt + 1 + 1 + 1

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-9 20:57:51 | 显示全部楼层
  1. def func254(num):
  2.     while True:
  3.         if num == 1:
  4.             return True
  5.         if num % 3 == 0:
  6.             num //= 3         
  7.         else:
  8.             return False
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-9 21:14:17 | 显示全部楼层
def f(x):
    if x % 3 == 0:
        print('True')
    else:
        print('False')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-9 21:21:58 | 显示全部楼层
^萌新^ 发表于 2019-10-9 21:14
def f(x):
    if x % 3 == 0:
        print('True')

仔细看题哦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-9 21:24:01 | 显示全部楼层

恭喜通过!

执行用时:112 ms
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-9 21:24:28 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-9 21:30:53 | 显示全部楼层
def f(x):
    if x <= 0:
        return False
    if x == 1:
        return True

    while x > 1:
        if(x % 3 != 0):
            return False
        x /= 3
    return True

评分

参与人数 1荣誉 +1 鱼币 +1 贡献 +1 收起 理由
zltzlt + 1 + 1 + 1

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-9 21:32:24 | 显示全部楼层
  1. def kao(num):
  2.     if num == 0:
  3.         return False
  4.     if num == 1 or num % 3 == 0:
  5.         return True
  6.     else:
  7.         return False
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-9 21:33:41 | 显示全部楼层
def solution(num: int) ->bool:
    if num <= 0:
        return False
    while num != 1:
        if num%2 == 0 or num%3 != 0:
            return False
        num = num//3
    return True

评分

参与人数 1荣誉 +1 鱼币 +1 贡献 +1 收起 理由
zltzlt + 1 + 1 + 1

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-9 21:36:43 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-9 21:38:41 | 显示全部楼层
^萌新^ 发表于 2019-10-9 21:30
def f(x):
    if x  1:
        if(x % 3 != 0):

恭喜通过!

执行用时:92 ms
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-9 21:39:13 | 显示全部楼层
战场原 发表于 2019-10-9 21:33
def solution(num: int) ->bool:
    if num

恭喜通过!

执行用时:92 ms
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-9 21:40:08 | 显示全部楼层

打个补丁。
  1. def func254(num):
  2.     while True:
  3.         if num == 0:
  4.             return False
  5.         if num == 1:
  6.             return True
  7.         if num % 3 == 0:
  8.             num //= 3         
  9.         else:
  10.             return False
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-9 21:41:18 | 显示全部楼层
  1. def answer(num: int):
  2.     x, y, = 3, 0
  3.     z = x ** y
  4.     while z <= num:
  5.         if z == num:
  6.             return True
  7.         else:
  8.             y += 1
  9.             z = x ** y
  10.     return False
复制代码

评分

参与人数 1荣誉 +1 鱼币 +1 贡献 +1 收起 理由
zltzlt + 1 + 1 + 1

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-20 14:50

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表