Eventually the base case does get called and it returns base
, whatever that is. But all calls below it in the stack ignore it and return -1
.
Just have the recursive case return whatever the recursive call returns:
return addMultiples(++num, base);