一、返回值
Math.Sign()有五种返回值
1) 1 // 正数
2) -1 // 负数
3) 0 // 正0
4) -0 // 负0
5) NaN // 非数字
注意:传递给该函数的参数会被隐式转换为数字类型。
二、Math.sign() 与 比较运算符
if (num > 0) {} else {}
if (Math.sign(num) > 0) {} else {}
实际上,如果只是单纯获取布尔状态,用比较运算符即可。Math.sign()的闪光点在于它返回的是数字值,这意味着它可以用于计算。
转载于:http://blog.sina.com.cn/s/blog_15a340f5a0102znc2.html
例题: 题源来自https://leetcode-cn.com/problems/defuse-the-bomb/
解:
public class Solution
{
public int[] Decrypt(int[] code, int k)
{
int[] sol = new int[code.Length];
for(int i=0; i<code.Length; ++i)
{
for(int j=1; j<=Math.Abs(k); ++j)
{
sol[i] += code[(i + Math.Sign(k) * j + code.Length)%code.Length];
}
}
return sol;
}
}