英国蒙德公司:排序问题!

来源:百度文库 编辑:高校问答 时间:2024/04/27 21:52:00
英文字母 A-Z
例如ABCDE 最多5个字母一组 最少两个字母一组
问一共有多少种不同的排列方案
如何编程让他自动排列!
AA
AB
AC
......
如何编程自动搞定

自己用C#试验了两个和三个字母的情况,已经调试通过:
int i,j,k;
for (i=65;i<=90;i++)
{
for (j=65;j<=90;j++)
{
if (i!=j) Console.WriteLine("{0}{1}",(char)i,(char)j);
}
}

for (i=65;i<=90;i++)
{
for (j=65;j<=90;j++)
{
for (k=65;k<=90;k++)
{
if (i!=j && i!=k && j!=k) Console.WriteLine("{0}{1}{2}",(char)i,(char)j,(char)k);
}
}
}

Console.Read();

如果把2-5的所有组合排出来,很自然的办法是用5段类似的程序,不过个人感觉有些罗嗦。
另外的思路是把2-5的组合一口气列出来,用循环。关键就是构造一个集合,把字母动态添加、删除,还有判断集合内元素的数量。
这个比较麻烦,先吃饭去了,回头再发。