Цель c диапазон сравнения пересекается
Я пытаюсь найти пересечение двух диапазонов чисел, скажем, например...
диапазон A составляет от 10 до 100,
диапазон B составляет от 60 до 70
Есть ли простой способ, не записывая нагрузку операторов if для вычисления пересечения двух диапазонов, поэтому в этом примере это будет 10.
Спасибо,
Ответы
Ответ 1
Если у вас есть или сделать объекты NSRange
, функция NSIntersectionRange сделает это за вас. Просто не забудьте проверить, что он возвращает, когда нет пересечения.
NSRange a = NSMakeRange(10, 90);
NSRange b = NSMakeRange(60, 10);
NSRange intersection = NSIntersectionRange(a, b);
if (intersection.length <= 0)
NSLog(@"Ranges do not intersect");
else
NSLog(@"Intersection = %@", NSStringFromRange(intersection));
Ответ 2
Вы можете использовать этот метод для этой цели:
NSRange NSIntersectionRange (
NSRange range1,
NSRange range2
);
Вы можете найти всю информацию здесь:
NSIntersectionRange Apple Doc