void findSum(int[] arr, int startPos, int finPos, int reqiredSum)  // 
recursion procedure
{
     int sum =0;
// calculating sum of current(subarray) segment of array. imo single 
element is also a subarray so here we have  i <= finPos in case  when 
startPos == finPos
     for(int i = startPos, i <= finPos; i++ ) 
        {
            sum +=arr[i];
        }

  if (sum == reqiredSum) console.WtiteLine("start {0}  fin {1} ",startPos, 
 finPos);
   
  if (finPos - startPos >= 1) 
     {
           if (startPos < arr.length)  findSum(arr, startPos+1, finPos, 
reqiredSum);
           if (finPos >0)  findSum(arr, startPos, finPos-1, reqiredSum);
     }
}

void main()
{
       int[] arr = new int[]{1, 3, 1, 7, -4, -11, 3, 4, 8};
       reqiredSum =12;
       findSum(arr, 0, arr.length -1, reqiredSum);
}

-- 
You received this message because you are subscribed to the Google Groups 
"Algorithm Geeks" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to algogeeks+unsubscr...@googlegroups.com.

Reply via email to