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

时间:2009-07-10 18:26:25

标签: c# math

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

9 个答案:

答案 0 :(得分:61)

delta = Math.Abs(a - b);

答案 1 :(得分:18)

我的印象是“delta”是两个数字之间的差异。

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

delta = Math.Abs(a - b);

答案 2 :(得分: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;
  }
}

:P

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

答案 3 :(得分: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();

答案 4 :(得分:9)

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

答案 5 :(得分: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;
}

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

编辑:我没有意识到@Robert Harvey已经提出过这个问题,对他来说很有用; - )

答案 6 :(得分:1)

两个数字的差值是多少? Delta在集合论和无穷小的微积分中具有一定的含义,但这并不是指数字!

如果您想计算两个数字a和b之间的差异,请在C#中编写|a - b| Abs Math. {。}}。

答案 7 :(得分:1)

我决定修改JulianR上面有趣的答案。

代码较短,但可能更棘手:

public static int Delta(int a, int b)
{
  int delta = 0;
  while (a < b)
  {
    ++a;
    ++delta;
  }
  while (b < a)
  {
    ++b;
    ++delta;
  }
  return delta;
}

(对于幽默受损的人......这并不比开始这个线程的奇怪问题更严重)

答案 8 :(得分:0)

(r1+r2)/2

两个数字之间的平均值。