Метод предназначен для калькулятора и должен возвращать log2 (n). Все используемые методы (monus, который неправильно написан неправильно), ect) написаны правильно. s (n) просто добавляет один к n и p (n) вычитает один.Что не так с этим рекурсивным методом? (java)
Когда я вызываю метод в основном, он получает остаток справа, но всегда возвращает 0 для ответа. это меня смущает. Я уверен, что это связано с тем, что я повторно инициализирую ответ на 0 при каждом вызове метода, но не должен ли это иметь значение, потому что он всегда будет установлен в x до того, как он вернет что-нибудь?
x является частной статической переменной, которая была установлена равной 0 вне метода.
public static long v(long n)
{
long answer =0;
if (power(2,x) > n)
{
x = p(x);
setRemainder(monus(n,power(2,x)));
answer = x;
}
else if(power(2,x) ==n)
{
setRemainder(0);
answer = x;
}
else
{
x = s(x);
v(n);
}
x=0;// reset x so it can be used again.
return answer;
}
Может мне кто-нибудь помочь?
Вы рекурсию в позвонив по телефону 'v (N)', но вы никогда ничего с тем, что вы найдете делать. – Teepeemm