Advertisement
Guest User

Untitled

a guest
Sep 20th, 2017
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.04 KB | None | 0 0
  1. int N = 3;
  2. string s = "";
  3. int[] arrayN = new int[] { 1, 2, 3 };
  4. for (int i = 0; i < N; i++)
  5. {
  6. s = s + arrayN[i];
  7. for (int j = 0; j < N; j++)
  8. {
  9. s = s + arrayN[j];
  10. for (int k = 0; k < N; k++)
  11. {
  12. Console.Write(s + arrayN[k] + "n");
  13. }
  14. s = "";
  15. s = s + arrayN[i];
  16. }
  17. s = "";
  18. }
  19.  
  20. 111
  21. 112
  22. 113
  23. 121
  24. 122
  25. 123
  26. 131
  27. 132
  28. 133
  29. 211
  30. 212
  31. 213
  32. 221
  33. 222
  34. 223
  35. 231
  36. 232
  37. 233
  38. 311
  39. 312
  40. 313
  41. 321
  42. 322
  43. 323
  44. 331
  45. 332
  46. 333
  47.  
  48. using System.Linq;
  49.  
  50. int N = 3; //NB! не пытайтесь использовать большие N
  51. int[] arrayN = Enumerable.Range(1, N).ToArray(); //если у нас ограниченый алфавит, то используем new int[]{1,2,3}
  52. string[] result = arrayN.Select(n => $"{n}").ToArray(); // для старых версий языка заменяем $"{n}" на n.ToString()
  53. for (int i = 1; i < N; i++)
  54. {
  55. result = (from a in arrayN
  56. from b in result
  57. select $"{a}{b}").ToArray(); // для старых версий языка заменяем $"{a}{b}" на String.Format("{0}{1}", a, b)
  58. }
  59.  
  60. int[] result = arrayN;
  61. ...
  62. select b*10 + a).ToArray();
  63.  
  64. int N = 5;
  65. int[] arr = { 1, 2, 3, 4, 5 };
  66. int C = 1;
  67. for (int i = 0; i < N; ++i) C *= arr.Length;
  68. for (int i = 0; i < C; ++i)
  69. {
  70. int d = i;
  71. string s = "";
  72. for (int j = 0; j < N; ++j)
  73. {
  74. s = arr[d % arr.Length] + s;
  75. d /= arr.Length;
  76. }
  77. Console.WriteLine(s);
  78. }
  79.  
  80. static IEnumerable<int> GetCombinations(int n, int[] arr)
  81. {
  82. if (n < 1) yield break;
  83. int count = arr.Length;
  84. int[] exp = new int[n];
  85. exp[0] = 1;
  86. for (int j = 1; j < n; ++j)
  87. {
  88. exp[j] = 10 * exp[j - 1];
  89. count *= arr.Length;
  90. }
  91. for (int i = 0; i < count; ++i)
  92. {
  93. int d = i;
  94. int k = 0;
  95. for (int j = 0; j < n; ++j)
  96. {
  97. k += arr[d % arr.Length] * exp[j];
  98. d /= arr.Length;
  99. }
  100. yield return k;
  101. }
  102. }
  103.  
  104. foreach (var k in GetCombinations(5, new[] { 1, 2, 3, 4 }))
  105. Console.WriteLine(k);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement