Ich weiß nicht warum, aber ich kann diese Rekursion für den Tod von mir nicht verfolgen und es wirklich mich sauer. Ich würde mich freuen, wenn jemand helfen könnte zu erklären, wie man das durchmacht.Brauchen Sie Verständnis dieser Rekursion
public class MindNumber
{
public static int numb(int i)
{
int result;
if (i < 1)
{
result = -1;
}
else if (i < 10)
{
result = numb(i - 1) + numb(i - 2);
}
else if (i % 2 == 0)
{
result = numb(i/2);
}
else
{
result = numb(i/2) + numb(i % 2);
}
return result;
}
}
public class MindNumberDriver
{
public static void main(String[] args)
{
int i;
i = MindNumber.numb(12);
System.out.println(i);
}
}
Der Ausgang ist -21. Verstehe nicht, wie es ehrlich dazu kommt.
ich schlage vor, Sie durch den Code in Ihrem Debugger Schritt. –
Hast du das geschrieben? Erwarten Sie etwas anderes? Wenn ja, was? – shmosel
Nehmen Sie einfach ein Stück Papier und versuchen Sie alle Anrufe aufzuschreiben. – mariusz2108