Linq query to get all numbers (positive and negative) up to N that sum up to number K(LINQ查询以获取最大为N的所有数字(正数和负数),其总和为数字K)
本文介绍了LINQ查询以获取最大为N的所有数字(正数和负数),其总和为数字K的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个特定的任务,要创建一个仅使用LINQ的函数,这就是它对我具有挑战性的原因。 问题类似于:
生成N个数字的加(+-)加和为K的所有表达式 举个例子,如果我有N=3,K=0。在某个点上,我应该有8个带正负(n组合的2次方)的数字组合,并且使用一些WHERE子句,我应该只提取那些总和为0(即K)的数字。 因此,结果应该类似于:
-1-2+3=0;
+1+2-3=0;
再说一次,我只能使用LINQ查询,不能使用其他查询,而且我不能完全理解这个问题。有人能帮忙吗?推荐答案
感谢任何试图提供帮助的人,不幸的是,对于此问题而言,所有解决方案都太复杂,因此我设法找到了我自己的解决方案,它稍微简单一些,但您的解决方案将我引导到了正确的方向。
IEnumerable<string> seed = new[] { "" };
var x = Enumerable.Range(0, n).Aggregate(seed, (a, _) => a.
SelectMany(s => new[] { s + "+", s + "-" }));
return x.Select((a) => a.Select((a, b) => a == '+' ? b + 1 : (b + 1) * -1))
.Where(r => r.Sum() == k);
这篇关于LINQ查询以获取最大为N的所有数字(正数和负数),其总和为数字K的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:LINQ查询以获取最大为N的所有数字(正数和负数),其总和为数字K


基础教程推荐
猜你喜欢
- 是否可以在 asp classic 和 asp.net 之间共享会话状态 2022-01-01
- 经典 Asp 中的 ResolveUrl/Url.Content 等效项 2022-01-01
- 全局 ASAX - 获取服务器名称 2022-01-01
- 从 VS 2017 .NET Core 项目的发布目录中排除文件 2022-01-01
- 在 VS2010 中的 Post Build 事件中将 bin 文件复制到物 2022-01-01
- 将事件 TextChanged 分配给表单中的所有文本框 2022-01-01
- 错误“此流不支持搜索操作"在 C# 中 2022-01-01
- 首先创建代码,多对多,关联表中的附加字段 2022-01-01
- JSON.NET 中基于属性的类型解析 2022-01-01
- 如何动态获取文本框中datagridview列的总和 2022-01-01