首页 > 试题广场 >

开根号

[编程题]开根号
  • 热度指数:2582 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解

在没有任何数学库函数的情况下,求一个数 m n 次方的结果。


输入描述:

每组输入只有1行,包括有一个正实数m和一个正整数n,其中1 <= n <= 32, 1<=m<=



输出描述:
输出只有一行,打印m开n次方的结果,小数点后面保留12位。
示例1

输入

2 10

输出

1.071773462536
def root3(n,num):
    acc=10**(-14)
    low=0
    high=num
    while(high-low>=acc):
        mid=(low+high)/2.0
        #prod=1
          #for j in range(n): # mid multiply n times
         #prod=prod*mid
        prod=mid**n
        if(abs(prod-num)<=acc):
            break
        if(prod>=num): high=mid
        else: low=mid

    print("%.12f"%mid)

if __name__ == "__main__":
    num,n=map(int,input().strip().split())
    root3(n,num)

这代码错哪了,竟然不能100%通过。
编辑于 2020-03-11 14:32:07 回复(2)