C# 求一个用递归解决穷举一个数组可能组合的方法。

数组data[10],每一个值的都有固定取值范围,如(0-6)。如何利用递归,求出所有的数组取值可能性,从0000000000到6666666666.... 数组 data[10],每一个值的都有固定取值范围,如(0-6)。
如何利用递归,求出所有的数组取值可能性,从0000000000到6666666666.
展开
 我来答
代达罗斯之殇
2020-03-30 · 知道合伙人互联网行家
代达罗斯之殇
知道合伙人互联网行家
采纳数:702 获赞数:2548
毕业于湖南工学院,目前从事湖南中职招生!

向TA提问 私信TA
展开全部
List<string> strlist = new List<string>(); List<string> strs = "a,c,b,e,d".Split(',').OrderBy(t=>t).ToList(); string temp = ""; //5位 for (int i = 0; i<strs.Count; i++) { temp += strs[i] + ","; } strlist.Add(temp); //4位数 for (int i = 0; i < strs.Count - 3; i++) { for (int j = i + 1; j < strs.Count - 2; j++) { for (int k = j + 1; k < strs.Count - 1; k++) { for (int n = k + 1; n < strs.Count; n++) { temp = strs[i] + "," + strs[j] + "," + strs[k] + "," + strs[n]; strlist.Add(temp); } } } } //3位数 for (int j = 0; j < strs.Count - 2; j++) { for (int k = j + 1; k < strs.Count - 1; k++) { for (int n = k + 1; n < strs.Count; n++) { temp = strs[j] + "," + strs[k] + "," + strs[n]; strlist.Add(temp); } } } //2位 for (int k = 0; k < strs.Count - 1; k++) { for (int n = k + 1; n < strs.Count; n++) { temp = strs[k] + "," + strs[n]; strlist.Add(temp); } } //1位 for (int n = 0; n < strs.Count; n++) { temp = strs[n]; strlist.Add(temp); } return strlist.OrderBy(t=>t).ToList();
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式