Advertisement
podsolnyxxx

Дискретка 2 сем. 1 лаб. D

Apr 12th, 2024 (edited)
43
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.39 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <string>
  4. #include <algorithm>
  5.  
  6. using namespace std;
  7.  
  8. // Функция для преобразования числа в символ
  9. char intToChar(int num) {
  10. if (num < 10)
  11. return '0' + num;
  12. else
  13. return 'a' + (num - 10);
  14. }
  15.  
  16. // Функция для генерации всех строк длины N из символов 0..K-1 в обратном лексикографическом порядке
  17. void generateStrings(int N, int K) {
  18. vector<int> indices(N, K - 1);
  19.  
  20. while (true) {
  21. // Формируем строку по текущим индексам
  22. string str;
  23. for (int i = 0; i < N; ++i)
  24. str += intToChar(indices[i]);
  25.  
  26. // Выводим текущую строку
  27. cout << str << endl;
  28.  
  29. // Уменьшаем индексы
  30. int j = N - 1;
  31. while (j >= 0 && indices[j] == 0)
  32. j--;
  33.  
  34. if (j == -1)
  35. break;
  36.  
  37. indices[j]--;
  38. for (int k = j + 1; k < N; ++k)
  39. indices[k] = K - 1;
  40. }
  41. }
  42.  
  43. int main() {
  44. int N, K;
  45. cin >> N >> K;
  46.  
  47. // Генерируем строки и выводим их в обратном лексикографическом порядке
  48. generateStrings(N, K);
  49.  
  50. return 0;
  51. }
  52.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement