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