Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int N = 3;
- string s = "";
- int[] arrayN = new int[] { 1, 2, 3 };
- for (int i = 0; i < N; i++)
- {
- s = s + arrayN[i];
- for (int j = 0; j < N; j++)
- {
- s = s + arrayN[j];
- for (int k = 0; k < N; k++)
- {
- Console.Write(s + arrayN[k] + "n");
- }
- s = "";
- s = s + arrayN[i];
- }
- s = "";
- }
- 111
- 112
- 113
- 121
- 122
- 123
- 131
- 132
- 133
- 211
- 212
- 213
- 221
- 222
- 223
- 231
- 232
- 233
- 311
- 312
- 313
- 321
- 322
- 323
- 331
- 332
- 333
- using System.Linq;
- int N = 3; //NB! не пытайтесь использовать большие N
- int[] arrayN = Enumerable.Range(1, N).ToArray(); //если у нас ограниченый алфавит, то используем new int[]{1,2,3}
- string[] result = arrayN.Select(n => $"{n}").ToArray(); // для старых версий языка заменяем $"{n}" на n.ToString()
- for (int i = 1; i < N; i++)
- {
- result = (from a in arrayN
- from b in result
- select $"{a}{b}").ToArray(); // для старых версий языка заменяем $"{a}{b}" на String.Format("{0}{1}", a, b)
- }
- int[] result = arrayN;
- ...
- select b*10 + a).ToArray();
- int N = 5;
- int[] arr = { 1, 2, 3, 4, 5 };
- int C = 1;
- for (int i = 0; i < N; ++i) C *= arr.Length;
- for (int i = 0; i < C; ++i)
- {
- int d = i;
- string s = "";
- for (int j = 0; j < N; ++j)
- {
- s = arr[d % arr.Length] + s;
- d /= arr.Length;
- }
- Console.WriteLine(s);
- }
- static IEnumerable<int> GetCombinations(int n, int[] arr)
- {
- if (n < 1) yield break;
- int count = arr.Length;
- int[] exp = new int[n];
- exp[0] = 1;
- for (int j = 1; j < n; ++j)
- {
- exp[j] = 10 * exp[j - 1];
- count *= arr.Length;
- }
- for (int i = 0; i < count; ++i)
- {
- int d = i;
- int k = 0;
- for (int j = 0; j < n; ++j)
- {
- k += arr[d % arr.Length] * exp[j];
- d /= arr.Length;
- }
- yield return k;
- }
- }
- foreach (var k in GetCombinations(5, new[] { 1, 2, 3, 4 }))
- Console.WriteLine(k);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement