如题,我们随机生成10个含有32位数字或者字符的密码(数字和密码至少包含1位)。
其实现代码如下:
#include<iostream>
#include<vector>
using namespace std;
void GenerateCode()
{
for (int i = 0; i != 10; ++i)
{
vector<int> State(32, 0);
vector<char> Code(32, '0');
int sum = 0;
for (int j = 0; j != 32; ++j)
{
State[j] = rand() % 2;
sum += State[j];
}
if (sum == 32 || sum == 0)
{
int r=rand() % 32 + 1;
State[r] = 1 - State[r];
}
for (int i = 0; i != 32; ++i)
{
if (State[i] == 0)
Code[i] = rand() % 10 + '0';
else
Code[i] = rand() % 26 + 'a';
}
for (vector<char>::iterator iter = Code.begin(); iter != Code.end(); ++iter)
{
cout << *iter;
}
cout << endl;
}
}
int main()
{
GenerateCode();
system("pause");
return 0;
}
实验结果如下: