Вместо символов выводятся квадраты, помогите

static void Main(string[] args)
    {
        Console.OutputEncoding = System.Text.Encoding.Default;
        Console.Write("Введите n : ");
        int n = int.Parse(Console.ReadLine());
        int[] mas = new int[n];
        char[] a = new char[n];
        for (int i = 0; i < n; i++)
        {
            mas[i] = i + 1;
            a[i] = (char)mas[i];
        }
        Permute(a, 0, a.Length - 1);
        Console.ReadKey();
    }

    static void Permute(char[] a, int i, int n)
    {
        int j;

        if (i == n)
        {
            Console.WriteLine(new string(a));
        }
        else
        {
            char temp;
            for (j = i; j <= n; j++)
            {
                // swap(a[i], a[j]);
                temp = a[i];
                a[i] = a[j];
                a[j] = temp;

                Permute(a, i + 1, n);

                // swap(a[i], a[j]);
                temp = a[i];
                a[i] = a[j];
                a[j] = temp;
            }
        }
    }

Ответы (1 шт):

Автор решения: aepot

Вы просто перемудрили

static void Main(string[] args)
{
    Console.Write("Введите n : ");
    string n = Console.ReadLine();
    char[] a = n.ToCharArray();
    Permute(a, 0, a.Length - 1);
    Console.ReadKey();
}

Вывод в консоль

Введите n : 123
123
132
213
231
321
312
→ Ссылка