首页 新闻 会员 周边 捐助

C#两两组合排序问题

0
悬赏园豆:50 [已解决问题] 解决于 2013-08-16 01:12

A1,A2,A3,A4,A5,A7,B1,B3,B5,B6,B7 ,B8

以上中  取任意n个(n为输入值),打印出所有的n个组合可能。尽可能高效。 谢谢~~~~

(比如我输入2,那么打印出所有2个组合的可能 (A1,A2)(A1,A3)(A1,A4)(A1,A5)(A1,A7)(A1,B1)...........等等 )

沉默的码畜的主页 沉默的码畜 | 初学一级 | 园豆:34
提问于:2013-08-06 23:50
< >
分享
最佳答案
0
        static string[] str = new string[] { "A1", "A2", "A3", "A4", "A5", "A7", "B1", "B3", "B5", "B6", "B7", "B8" };
        static List<string> strs = new List<string>();
        static void Main(string[] args)
        {
            Console.WriteLine("输入一个数...");
            string ss = Console.ReadLine();
            DoWork("", 0, int.Parse(ss));
            foreach (string s in strs)
            {
                Console.WriteLine(s);
            }
            Console.ReadLine();
        }

        static void DoWork(string r,int i,int t)
        {
            if (r.Length / 2 >= t)
            {
                strs.Add(r);
                return;
            }
            for (; i < str.Length;)
            {
                DoWork(r + str[i], ++i, t);
            }
        }
收获园豆:50
只会造轮子 | 老鸟四级 |园豆:2274 | 2013-08-07 10:30

虽然没用上。但是谢谢你了。

沉默的码畜 | 园豆:34 (初学一级) | 2013-08-16 01:13
其他回答(1)
0

学习建议:自己遇到的问题自己不写算法----->不要想提高

[秦时明月] | 园豆:738 (小虾三级) | 2013-08-07 10:05
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册