日期:2014-05-20  浏览次数:20686 次

200
table1
A,B,C,D,E,F,G,H,I,J,K
请问:怎么样查询A—K中的3个字母(字母的顺序是固定的)把所的组合列出来
比如:A,B,C
            A,C,D
            A,C,F
            E,F,K
但是顺序不能变如C,D,A  
                                C,B,A
希望知道这么做的告诉下。



------解决方案--------------------
循环或递归
第一个是 A, B,C
最后一个是I,J,K
类似于10进制,每个组合都是上一个组合最后一个字母换成下一个字母,每到K则进位。但进位后不能像10进制那样复位到0,而是复位到上位的下一个字母。
ABC
……
ABK
ACD
……
ACK
……
AJK
BCD
……
IJK
------解决方案--------------------
// 定义
string[] lines = { "A ", "B ", "C ", "D ", "E ", "F ", "G ", "H ", "I ", "J ", "K "};
for(int i=0, n=lines.length; i <n; i++)
for (int j=i; j <n; j++)
for (int k=j; k <n; k++)
// 输出
System.Console.WriteLine(lines[i] + lines[j] + lines[k]);