gpt4 book ai didi

c# 如果一个或两个都大于 0,则两个数字中的最小值

转载 作者:太空狗 更新时间:2023-10-29 20:43:52 26 4
gpt4 key购买 nike

我正在寻找的逻辑是,如果其中一个数字 >= 0(它们不一定是),则返回两者中也大于 0 的最小值。我的代码为它写的太丑了,我羞于发布它!

编辑: sample 1, -1 => 15,6 => 5-1,-1 => 0

(如果两者都小于0,则返回0)

最佳答案

我要试试我的通灵能力,假设如果两者都为零,你想返回 0。

换句话说:

return x < 0 && y < 0 ? 0
: x < 0 ? y
: y < 0 ? x
: Math.Min(x, y);

不过我相信我可以做得更好......

如果它们都大于 0,那么至少有一个会小于零,所以您只关心它们中的较大者,如果它们都小于零则为 0 .否则,我们只取最小值。

return x < 0 || y < 0 ? Math.Max(Math.Max(x, y), 0) : Math.Min(x, y);

如果你不太关心性能,你可以使用:

new[] { x, y }.Where(z => z > 0)
.DefaultIfEmpty() // Make sure there's at least one entry
.Min();

坦率地说,这些都不是非常好,IMO。我想对他们中的任何一个发表评论...

关于c# 如果一个或两个都大于 0,则两个数字中的最小值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7151067/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com