Алгоритм перевода диапазона в префиксы номеров АТС - C#

Узнай цену своей работы

Формулировка задачи:

Есть диапазон телефонных номеров, а в АТС используются префиксы телефонных номеров. Придумать "с наскоку" алгоритм перевода диапазона в префиксы не удалось, помогите пожалуйста. Например, диапазон

123456000-123789999

должен быть преобразован в список префиксов:

123456 123457 123458 123459 12346 12347 12348 12349 1235 1236 12370 12371 12372 12373 12374 12375 12376 12377 12378

Решение задачи: «Алгоритм перевода диапазона в префиксы номеров АТС»

textual
Листинг программы
static IEnumerable<uint> ToMasks(uint start, uint end)
    {
        while (start <= end)
        {
            uint mask = 0, pow = 0;
            for (int i = 0;; i++)
            {
                pow = (uint)Math.Pow(10, NumberLength - i);
                mask = start / pow;
                if (mask * pow + pow - 1 <= end && mask * pow >= start)
                {
                    yield return mask;
                    break;
                }
            }
            start = (mask + 1) * pow;
        }
    }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.917 из 5
Похожие ответы