C#函数找到两个数字的增量

Bry*_*zza -3 c# math

我只是想知道.net框架中是否有任何内置,我可以轻松返回两个数字之间的增量?我编写的代码可以做到这一点,但听起来应该已经在框架中了.

Rob*_*vey 61

delta = Math.Abs(a - b);
Run Code Online (Sandbox Code Playgroud)

  • 哇...一个24*字符*答案净重385代表(和计数).这不是一个糟糕的比例. (6认同)
  • 还给他一个逆转徽章.其中只有207个发放过!太好了! (2认同)

abe*_*nky 18

我的印象是"delta"是两个数字之间的差异.

在你以不同的方式告诉我之前,我想你想要的是:

delta = Math.Abs(a - b);
Run Code Online (Sandbox Code Playgroud)


Jul*_*anR 15

public static int Delta(int a, int b)
{
  int delta = 0;
  if (a == b)
  {
    return 0;
  }
  else if (a < b)
  {
    while (a < b)
    {
      a++;
      delta++;
    }
    return delta;
  }
  else
  {
    while (b < a)
    {
      b++;
      delta++;
    }
    return delta;
  }
}
Run Code Online (Sandbox Code Playgroud)

:p

哦,小男孩,我希望没有(未来)雇主遇到这个,并在他到达这篇文章结尾之前厌恶地阅读.


Dan*_*ker 11

Linq版本(需要CLR 4.0).

(手指裂开,喉咙松弛)

var delta = (from t in Enumerable.Range(a, a).Zip(Enumerable.Range(b, b))
            select Math.Abs(t.Item1 - t.Item2))
            .First();
Run Code Online (Sandbox Code Playgroud)


jal*_*alf 9

这不是减运算符的作用吗?:p

  • 不完全但很好回答;-) (2认同)

for*_*ran 8

public static int Delta(int a, int b)
{
    return a > 0? Delta(a-1, b-1) : a < 0 ? Delta(a+1, b+1) : b > 0 ? b : -b;
}
Run Code Online (Sandbox Code Playgroud)

我认为这甚至比@JulianR Delta实施更好:-p

编辑:我没有意识到这已经被@Robert Harvey建议,归功于他;-)

  • 哦,那好多了.递归*和*链式三元运算符! (3认同)