public static void Main()
int[] arr = {1,2,3,4,5,6,7,8,9,10};
int rank = GetRank(arr, 9);
private static int GetRank(int[] a, int search){
return GetRank(a, search, 0, a.Length -1, 0, "-");
private static int GetRank(int[] a, int search, int lo, int hi, int deepLv, string printStyle = "+"){
Console.WriteLine($"deeplv:{deepLv} lo:{lo} hi:{hi}");
bool isPrintInclude = printStyle == "+";
bool isPrintExclude = printStyle == "-";
throw new Exception("err");
return GetRank(a, search, mid+1, hi, deepLv + 1, printStyle);
}else if(search< a[mid]) {
throw new Exception("err");
return GetRank(a, search, lo, mid -1, deepLv + 1, printStyle);
private static void printList(int[] a, int lo, int hi){
for(int i = lo; i <=hi; i ++){
Console.Write(a[i] + " ");