有没有一种方法可以在Objective-C中计算double的第n个根?
我似乎找不到合适的函数。
你需要使用 pow 函数:
pow(d, 1.0/n)
在数学上,x 的 n 次方根是 x 的 1/n 次幂。
我不知道 Objective-C 的语法会是什么样子,但基本上你只需要使用带有 1/n 作为指数的幂函数即可。
pow(value, 1.0/n)
是行不通的(你会得到“NaN”-不是数字)。因此,请改用以下方法:int f = (value < 0 && (n % 2 == 1)) ? -1 : 1;
root = pow(value * f, 1.0/n) * f
我在需要时导入的#Math.h
宏文件中有以下内容:
#define rootf(__radicand, __index) (powf(((float)__radicand),(1.0f/((float)__index))))
因此,20的立方根将是rootf(20,3)
pow(d, 1.0/n)
可能是明智的,否则它将无法与整数n一起使用。 - joerick/
表示Double
-division(因为类型为Double
的第一个参数的pow
需要类型为Double
的第二个参数),因此推断1
和3
也是Double
。如果你用类型为Int
的变量n
替换3
,无论分子是1
还是1.0
,都会在编译时出现错误。 - rob mayoff