纯字母密码字典
字母空间:a-z
字母长度:n
输出到控制台
#include<iostream>
#include<bits/stdc++.h>
using namespace std;
int n;//密码长度
string s="abcdefghijklmnopqrstuvwxyz";//密码空间
void dfs(int deep,string ans)
{
if(deep==n)//当前的深度等于所需字符长度,输出该字符串并返回
{
cout<<ans<<endl;
return;
}
/*否则的话,将当前每一个串都做+26个字母的操作
eg:当前字母为a 则 a+a a+b 一直到z+z 26*26个
一直持续操作到所有均满足条件时结束
*/
for(int i=0; i<26; i++)
dfs(deep+1,ans+s[i]);
}
int main()
{
cin>>n;//密码长度
dfs(0,"");//初始深度为0,初始串为空
return 0;
}
输出到文件
#include<iostream>
#include<bits/stdc++.h>
using namespace std;
int n;//密码长度
string s="abcdefghijklmnopqrstuvwxyz";//密码空间
int sum=0;//计总数
void dfs(int deep,string ans)
{
//ofstream write一定要这样定义,否则会出现写入失败,有好的方法望大佬指教。
ofstream write("password.txt",ios::app);//创建写入流,没有则创建password.txt, ios::app定位文件末尾(续写,防擦除)
if(deep==n)//当前的深度等于所需字符长度,输出该字符串并返回
{
write<<ans<<endl;
sum++;
write.close();
return;
}
/*否则的话,将当前每一个串都做+26个字母的操作
eg:当前字母为a 则 a+a a+b 一直到z+z 26*26个
一直持续操作到所有均满足条件时结束
*/
for(int i=0; i<26; i++)
dfs(deep+1,ans+s[i]);
}
int main()
{
cin>>n;//密码长度
dfs(0,"");//初始深度为0,初始串为空
cout<<"写入完成,写入个数:"<<sum<<endl;
return 0;
}