首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

200,该如何解决

2011-12-29 
200table1A,B,C,D,E,F,G,H,I,J,K请问:怎么样查询A—K中的3个字母(字母的顺序是固定的)把所的组合列出来比如

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]);

热点排行