Джон Скит ответил на этот вопрос, но я, хотя и хотел бы более четко объяснить, что именно происходит в этой строке ...
bigzarb(x, w) *( 10 ^ m) + (bigzarb(x,w)+bigzarb(w,y))*10^m +bigzarb(y,z);
Давайте разбить ее на части
Первое утверждение:
bigzarb(x, w)
Но, как вы увидите из ответа Джона, вы не возвращаете значение из этого метода ...
private void bigzarb (int u, int v)
Теперь давайте заменим этот бит его фактическим значением, теперь мы объяснили это:
[void] *( 10 ^ m) + (bigzarb(x,w)+bigzarb(w,y))*10^m +bigzarb(y,z);
То же самое относится ко всем остальным вызовам bigzarb - поэтому давайте заменим их тоже...
[void] * ( 10 ^ m) + ([void] + [void]) * 10 ^ m + [void];
Итак, ваша проблема в том, чтобы использовать математические операторы, вам нужны числа на каждой стороне - но у вас нет чисел, потому что ваш метод недействителен.
Выможет изменить ваш метод, чтобы он возвращал число, но помните о рекурсии ... когда вы вызываете этот метод, он вызывает себя три раза, и каждый из этих вызовов приведет к еще трем вызовам метода.Не хорошо!