C ++程序生成N个密码,每个密码的长度为M
这是一个C++程序,用于生成N个密码,每个密码的长度为M。
算法
Begin Take the length of password as input. function permutation() generate random passwords: /* Arguments A pointer array a. Total Number of random numbers m. Length of the password s. */ //函数主体: if (m == s) for i = 0 to s-1 Print *(a + i) else for i = m to s-1 int tmp = a[m] a[m] = a[i] a[i] = tmp Call permutation(a, m + 1, s) tmp = a[m] a[m] = a[i] a[i] = tmp End
示例
#include<iostream> #include<conio.h> #include<stdlib.h> using namespace std; void permutation(int *a, int m, int s) { if (m == s) { for (int i = 0; i < s; i++) { cout << *(a + i); } cout << endl; } else { for (int i = m; i < s; i++) { int tmp = a[m]; a[m] = a[i]; a[i] = tmp; permutation(a, m + 1, s); tmp = a[m]; a[m] = a[i]; a[i] = tmp; } } } int main(int argc, char **argv) { cout << "Enter the length of the password: "; int n; cin >> n; int a[n]; for (int i = 0; i < n; i++) { a[i] = rand() % 10; //randomly generate numbers } cout <<"随机数是:" <<endl; for (int i = 0; i < n; i++) { cout<<a[i] <<endl; } cout << "The Passwords are: "<<endl; permutation(a, 0, n); }
输出结果
Enter the length of the password: 4 随机数是: 1740T he Passwords are: 1740 1704 1470 1407 1047 1074 7140 7104 7410 7401 7041 7014 4710 4701 4170 4107 4017 4071 0741 0714 0471 0417 0147 0174