C# 求一个用递归解决穷举一个数组可能组合的方法。
数组data[10],每一个值的都有固定取值范围,如(0-6)。如何利用递归,求出所有的数组取值可能性,从0000000000到6666666666....
数组 data[10],每一个值的都有固定取值范围,如(0-6)。
如何利用递归,求出所有的数组取值可能性,从0000000000到6666666666. 展开
如何利用递归,求出所有的数组取值可能性,从0000000000到6666666666. 展开
1个回答
展开全部
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();
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询