2010-12-12 33 views
0

Je le code suivantJava - schématisant un appel récursif

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)); 
} 

Mon professeur dit que je dois diagramme l'appel récursif. De quel type de diagramme parle-t-il? Comment devrais-je le montrer? Merci.

P.S. la chaîne qui est appelée est « 101011 » ou 43.

-Dan

+0

apprécie l'aide des gens –

+3

Dites à votre professeur les contrôles de longueur dans le cas de base ne sont pas nécessaires. –

+0

toujours à la recherche des conseils –

Répondre

6

Par exemple, le schéma de « 101 » ressemblerait à quelque chose comme ceci:

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

encore besoin d'aide avec 101011 inconnu –

+0

(« 101011 ») serait schématisée en utilisant la même méthode que Victor a fait pour inconnu (« 101 ») dans cette réponse. – irrelephant

3

Il veut que vous dessiner un arbre où chaque noeud est un appel à la fonction, et des points à l'enfant qu'il appelle fait du.