Алгоритм перевода диапазона в префиксы номеров АТС - 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; } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д