public class FindMiddleIndex
{

    public static int findMiddleIndex(int[] numbers) throws Exception
    {
        int endIndex = numbers.length - 1;
        int startIndex = 0;
        int sumLeft = 0;
        int sumRight = 0;
        while (true)
            {
                if (sumLeft > sumRight)
                    {
                        sumRight += numbers[endIndex--];
                    }
                else
                    {
                        sumLeft += numbers[startIndex++];
                    }
                if (startIndex > endIndex)
                    {
                        if (sumLeft == sumRight)
                            {
                                break;
                            }
                        else
                            {
                                throw new Exception(
                                    "Please pass proper array to match the requirement");
                            }
                    }
            }
        return endIndex;
    }

    public static void main(String a[])
    {
        int[] num = { 2, 4, 4, 5, 4, 1 };
        try
            {
                System.out.println("Starting from index 0, adding numbers till index "
                                   + findMiddleIndex(num) + " and");
                System.out.println("adding rest of the numbers can be equal");
            }
        catch (Exception ex)
            {
                System.out.println(ex.getMessage());
            }
    }
}