I think in this part of code
else{
// note: need to minus "1"
// because the rightEnd is not included
numTriangle = numTriangle + (rightEnd - leftEnd - 1);
leftEnd++; // decrease the Caterpillar
}
after leftEnd++ a line is missing:
something like: if (leftEnd==rightEnd) rightEnd++