如何用算法,生成字典?
比如:aa,ab,ac,ad.........有没有好点的递归算法可以轻松实现.大家讨论一下.
解决方案 »
- 从数据库image字段中的数据怎么输入到excel中
- 关于DBLookupListBox的显示问题
- fastreport报表打印连续纸怎样分页?
- 多文档界面中的多个窗体模式显示的问题
- 怎样自己定义消息窗口?有没有这种模板?
- DELPHI使用了ADO连接到SQL数据库,这样的程序打包是否一个EXE就可以在所有WINDOWS上通用呢?
- 如何设置adoconnection控件的connectionstring属性???
- 为什么连接SQL SERVER 6.5的时候中文都显示成乱码了??
- 大家好,请问在DELPHI中#13和#10是表示什么含义的?
- 请教高人(40分相送)(东大阿尔派面试题)
- 求助:像 QQ 那样 单击一下聊天记录,则下面出现一个写字板的东西,那是怎么实现的啊?谢谢!
- incday是加一天,减一天是什么函数啊?
用For循环不好吗?
这种算法生成的字典有什么用?你如果只生成数字组合还好点。
你干脆找个英文单词表还强一些;
void generate(int length, char *str)
//length是生成字典序列的长度.
//str是当前字典序列
{
if (length == 0)
{
cout << str << endl;//输出字典序列
return;
}
for (int i = 0; i < 字符个数; i++)
{
strcat(str, i + 起始字符);
generate(length - 1, str);
去掉str中的最后一个字符;
}
}
#include <string.h>void generate(int length, char *str);
void generate(int length, char *str)
{
if (length == 0)
{
cout << str << endl;
return;
}
for (int i = 0; i < 10; i++)
{
char buff[2];
char *tail; buff[0] = '0' + i;
buff[1] = '\0'; strcat(str, buff);
generate(length - 1, str);
tail = str;
while (*tail != '\0')
tail++;
tail--;
*tail = '\0';
}
}void main(void)
{
char str[20] = "";
int length = 3;
generate(length, str);
}