您的位置:首页 > 其它

[组合算法] 生成不重复的字符串

2007-08-22 14:34 225 查看
#include <stdio.h>

#define MAXM 10

int m, n;

int workarr[MAXM];
int record[MAXM];

void DFS(int l)
{
int i;
if (l == n)
{
for (i=0; i<n; i++)
printf("%c", 'a'+record[i]);
printf("/n");
return;
}
for (i=0; i<m; i++)
if (workarr[i] > 0)
{
workarr[i]--;
record[l] = i;
DFS(l+1);
workarr[i]++;
}
}

int main()
{
int i;
while (scanf("%d%d", &m, &n) != EOF)
{
for (i=0; i<m; i++)
workarr[i] = n;
DFS(0);
}

return 0;
}
---------------
ref: http://blog.programfan.com/article.asp?id=16993
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: