using System.Globalization;
public class SortedSearch
public static int CountNumbers(int[] sortedArray, int lessThan)
return CountNumbers(sortedArray, lessThan, 0, sortedArray.Length - 1);
public static int CountNumbers(int[] sortedArray, int lessThan, int startIndex, int endIndex)
var length = sortedArray.Length;
if (sortedArray == null || length == 0 || sortedArray[startIndex] >= lessThan)
if (sortedArray[endIndex] < lessThan)
var middleIndex = (endIndex + startIndex) / 2;
var middleValue = sortedArray[middleIndex];
if (middleValue == lessThan)
else if (middleValue > lessThan)
return CountNumbers(sortedArray, lessThan, startIndex, middleIndex - 1);
return CountNumbers(sortedArray, lessThan, middleIndex + 1, endIndex);
public static void Main(string[] args)
Console.WriteLine(SortedSearch.CountNumbers(new int[] { 1, 3, 5, 7 }, 4));