Последовательность чисел из данной системы счисления

На входе 2 переменные: n - число до которого должна быть последовательность, р - основание системы счисления

using System;

namespace SS
{
    internal class Program
    {
        static void Main(string[] args)
        {
            string digits = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
            string r = "";
            string s = "";
            string[] a = Console.ReadLine().Split(' ');
            int p = int.Parse(a[0]);
            int n = int.Parse(a[1]);
            for (int i = 1; i == n; i++)
            {
                while (i > 0)
                {
                    int k = i % p;
                    r = digits[k] + r;
                    i /= p;    
                }
                s += r;
            }
            Console.WriteLine(s);
            Console.ReadKey();
        }
    }
}

По идее должно выводить слитную последовательность из системы счисления р в которой n элементов


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

Автор решения: Frehzy
Console.Write("Введите систему счисления: ");
var numeralSystem = Convert.ToInt32(Console.ReadLine());
Console.Write("Введите количество элементов системы счисления, которые необходимо вывести: ");
var count = Convert.ToInt32(Console.ReadLine());

IEnumerable<char> numeralSysList = default;
if (numeralSystem < 10)
    numeralSysList = Enumerable.Range(0, count).Select(x => char.Parse(x.ToString()));
else
{
    numeralSysList = Enumerable.Range(0, 10).Select(x => char.Parse(x.ToString()))
                               .Concat(Enumerable.Range('A', 'Z' - 'A' + 1).Select(x => (char)x))
                               .Take(count);
}

var line = string.Join(" ", numeralSysList);
Console.WriteLine($"Результат: {line}");

Console.ReadKey();
→ Ссылка