我对 C# 比较陌生,因为 Math.Pow(x,y) 为负数返回 NaN(读取:不是负幂),我想知道如何更有效地计算结果。我现在正在做的是一个基本的 for 循环,但我想知道它是否可以以更短的方式实现(可能使用 Linq)?
for(int i=0;i<power;i++)
{
result = result * num;
}
Run Code Online (Sandbox Code Playgroud)
Math.Pow(x,y)返回NaN负数。
那是因为没有为负底定义任意取幂:
http://en.wikipedia.org/wiki/Exponentiation
当基数 b 是正实数时,可以通过指数函数为所有实数甚至复数指数 n 定义 b 到 n
现在,如果幂是整数(如您的情况),则定义了对负数求幂以获得实际结果,但Pow不会为您计算。你应该做的是:
Pow(-2, 5)Pow问题Pow(2, 5)改为。所以在这种情况下,Pow(2, 5)返回 32。指数 5 是奇数,所以设为 -32,你就完成了。
| 归档时间: |
|
| 查看次数: |
4306 次 |
| 最近记录: |