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