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

请问算法:n组字母ABC进行排列,要求相邻字母不能相同

2012-08-02 
请教算法:n组字母ABC进行排列,要求相邻字母不能相同如:n2,则表示,有两组字母ABC(即A,B,C,A,B,C)进行排列,

请教算法:n组字母ABC进行排列,要求相邻字母不能相同
如:n=2,则表示,有两组字母ABC(即A,B,C,A,B,C)进行排列,相邻字母不能相同,将排列结果打印出来。
请高手们指导一下,用什么算法更容易实现。如能贴出代码,那就更好啦!

[解决办法]
先把0-5分成3组不相邻的数:
(0,2)(1,4)(3,5)
(0,3)(1,4)(2,5)
(0,3)(1,5)(2,4)
(0,4)(1,3)(2,5)
(0,5),(1,3)(2,4)
把ABC分别赋值对应的两个位置就是答案了


[解决办法]
第一步:
我感觉是排列组合 先输出所有排列组合的结果
第二部
一个for过去 把相邻字母相同的数字 过滤掉

这个方法耗时长,耗内存多。。。
没办法,算法不好
[解决办法]

探讨
n是不定的,举例用了2,n由用户输入。

热点排行