/* File: sum3.c
   A simple recursive function to compute the
   sum of the elements of an array.
*/

#include <stdio.h>

int sum (int A[], int low, int high) {
   int part1, part2, mid ; 
   
   if (high < low) return 0 ;
   if (low == high) return A[low] ;

   mid = (low + high) / 2 ;
   part1 = sum(A, low, mid) ;
   part2 = sum(A, mid+1, high) ;

   return part1 + part2 ;
}

main(){
  int A[5] = {1, 4, 9, 3, 2} ;
  int s ;

  s = sum(A, 0, 4) ;
  printf("sum A[0..4] = %2d\n", s) ;

  s = sum(A, 0, 0) ;
  printf("sum A[0..0] = %2d\n", s) ;

  s = sum(A, 0, 1) ;
  printf("sum A[0..1] = %2d\n", s) ;
}


