鱼C论坛

 找回密码
 立即注册
查看: 3437|回复: 53

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

[复制链接]
回帖奖励 8 鱼币 回复本帖可获得 1 鱼币奖励! 每人限 1 次(中奖概率 40%)
发表于 2020-5-11 18:53:19 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 永恒的蓝色梦想 于 2020-5-11 21:52 编辑

今天的题目:


实现 pow(x, n) ,即计算 x 的 n 次幂函数。
示例 1:

输入:x = 2.00000, n = 10
输出:1024.00000
示例 2:

输入:x = 2.10000, n = 3
输出:9.26100
示例 3:

输入:x = 2.00000, n = -2
输出:0.25000
解释:2-2 = 1/22 = 1/4 = 0.25
说明:

  • -100.0 < x < 100.0
  • n 是 32 位有符号整数,其数值范围是 [-231, 231-1] 。

欢迎大家一起答题!
最佳答案
2020-5-11 20:14:16
本帖最后由 kinkon 于 2020-5-11 20:36 编辑

昨天才做过,凑个热闹
class Solution: 
    def myPow(self, x: float, n: int) -> float:
        if x == 0.0: return 0.0
        res = 1
        if n < 0: x, n = 1 / x, -n
        while n:
            if n & 1: res *= x
            x *= x
            n >>= 1
        return res

评分

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

查看全部评分

本帖被以下淘专辑推荐:

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

使用道具 举报

发表于 2020-5-11 20:14:16 | 显示全部楼层    本楼为最佳答案   
本帖最后由 kinkon 于 2020-5-11 20:36 编辑

昨天才做过,凑个热闹
class Solution: 
    def myPow(self, x: float, n: int) -> float:
        if x == 0.0: return 0.0
        res = 1
        if n < 0: x, n = 1 / x, -n
        while n:
            if n & 1: res *= x
            x *= x
            n >>= 1
        return res
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-5-11 18:57:20 | 显示全部楼层
今天我来出题
因为 zltzlt 懒 (滑稽)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-11 19:29:09 | 显示全部楼层
本帖最后由 zltzlt 于 2020-5-11 19:30 编辑


感觉回答的人好少.....
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-11 19:30:53 | 显示全部楼层
qiuyouzhi 发表于 2020-5-11 19:29
感觉回答的人好少.....

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

使用道具 举报

发表于 2020-5-11 19:44:23 | 显示全部楼层

回帖奖励 +1 鱼币

def power(x,n):
    result=1
    for unit in range(n):
        result *= x
    return result
def main():
    x=eval(input('输入x:'))
    n=eval(input('输入n:'))
    print(power(x,n))
main()

评分

参与人数 1荣誉 +1 收起 理由
zltzlt + 1

查看全部评分

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

使用道具 举报

发表于 2020-5-11 19:48:22 | 显示全部楼层
本帖最后由 赚小钱 于 2020-5-11 19:49 编辑
In [12]: def pow_pos(x, n):
    ...:     if n == 0:
    ...:         return 1;
    ...:     if n == 1:
    ...:         return x;
    ...:     return x * pow(x, n - 1);
    ...:

In [13]: def pow_neg(x, n):
    ...:     if n == 0:
    ...:         return 1;
    ...:     if n == 1:
    ...:         return x;
    ...:     return pow(x, n + 1) / x;
    ...:

In [14]: def pow(x, n):
    ...:     if n > 0:
    ...:         return pow_pos(x, n);
    ...:     return pow_neg(x, n);
    ...:

In [15]: a = pow(2.1, 3)

In [16]: a
Out[16]: 9.261000000000001

In [17]: a = pow(2, -2);

In [18]: a
Out[18]: 0.25
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-5-11 19:48:32 | 显示全部楼层

没有考虑 n 为负数的情况
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-11 19:51:12 | 显示全部楼层
占+1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-11 20:02:45 | 显示全部楼层
本帖最后由 塔利班 于 2020-5-11 20:05 编辑
def pow(x,n):
    def f(x,n):
        if n<0:
            return 1/f(x,-n)
        elif n==0:
            return 1
        elif n==1:
            return x
        else:
            t=f(x,n//2)
            return t*t*f(x,n&1)
    print('%.5f'%f(x,n))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-11 20:06:46 | 显示全部楼层

x=2.00000,n=-2147483648 时 Overflow
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-11 20:08:47 | 显示全部楼层
本帖最后由 Twilight6 于 2020-5-11 21:13 编辑

久违的每日一题
def pow(x, n):
    result = 1
    while n > 0:
        n -= 1
        result *= x
    while n < 0:
        n += 1
        result /= x
    return result
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-11 20:09:05 | 显示全部楼层

x=1.00001,n=123456 递归次数过大
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-11 20:10:20 | 显示全部楼层

x=2.00000,n=-2 解答错误
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-11 20:12:34 | 显示全部楼层

回帖奖励 +1 鱼币

永恒的蓝色梦想 发表于 2020-5-11 20:09
x=1.00001,n=123456 递归次数过大

是的,我发现了。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-11 20:15:55 | 显示全部楼层
kinkon 发表于 2020-5-11 20:14
昨天才做过,凑个热闹

过了,但是你的代码没有 return res
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-11 20:18:29 | 显示全部楼层
def pow(x, n):
    return "%.5f" % x**n
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-11 20:19:39 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-11 20:28:42 | 显示全部楼层
快速幂我不会
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-11 20:31:33 | 显示全部楼层

回帖奖励 +1 鱼币

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-20 20:09

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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