2010-12-12 2 views
0

Я следующий кодJava - диаграмм рекурсивный вызов

public static int unknown(String x) 
{ 
if ((x.length()==1) && (x.equals("1"))) 
    return 1; 
else if ((x.length()==1) && (x.equals("0"))) 
     return 0; 
else if (x.charAt(x.length()-1)=='1') 
    return 1+ 2*unknown(x.substring(0,x.length()-1)); 
else 
    return 0+2*unknown(x.substring(0,x.length()-1)); 
} 

Мой профессор говорит, что я должен диаграмме рекурсивный вызов. О какой схеме он говорит? Как мне показать это? Благодарю.

P.S. струнное, который вызывается на это «101011», или 43.

Дана

+0

ценит помощь людям –

+3

Расскажи свой профессор проверка длины в базовом случае излишня. –

+0

все еще ищет руководство –

ответ

6

Например, схема для «101» будет выглядеть примерно так:

unknown(101) 
-> 1 + 2 * unknown(10) 
    -> 1 + 2 * (0 + 2 * unknown(1)) 
    -> 1 + 2 * (0 + 2 * 1) 
    -> 1 + 2 * 2 
-> 5 
+0

все еще нужна помощь с 101011 –

+0

Неизвестный («101011») будет схематизирован с использованием того же метода, что и Виктор, для неизвестного («101») в этом ответе. – irrelephant

3

Он хочет, чтобы нарисовать дерево, где каждый узел представляет собой вызов функции, и указует на ребенок называет, что это делает.