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

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

delta = Math.Abs(a - b); 

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

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

 delta = Math.Abs(a - b); 
 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

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

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(); 

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

 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已经提出过这个问题,对他来说很有用;-)

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

如果要计算两个数字a和b之间的差值,可以写|a - b| 这是Math. C#中的Abs (a - b)

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

代码更短,但也许更棘手:

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

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

 (r1+r2)/2 

两个数字之间的平均值。