Trouver la somme de tous les éléments de la matrice de façon récursive dans le langage java
Voici mon code:
public int sum(int[] array, int index)
{
//int index is the number of elements in the array.
//Here is my base case:
if (index == 0)
return 0;
//Now it's time for the recursion
else
return array[index] + sum(array, index + 1);
}
J'obtiens toujours une erreur de limites, mais je ne sais pas ce que je fais de mal.
- Où est votre condition d'arrêt ? Vous n'en avez pas et vous gardez une augmentation de l'indice.
Vous devez vous connecter pour publier un commentaire.
Votre condition de base est défectueux. Il doit être:
Note, vous devez passer
index = 0
le premier appel. Si vous êtes de passage àindex = array.length - 1
, puis maintenez le cas de base tel qu'il est, et de modifier la méthode récursive invocation de passerindex - 1
, au lieu deindex + 1
.Cependant, avez-vous vraiment besoin de la récursivité? Je serait gravement donner des centaines de pensées avant d'atteindre pour la récursivité au lieu de boucle pour cette tâche.
Essayer,
sum({9},0)
au lieu de passer de 0 à l'indice les plus élevées , à partir de l'indice les plus élevées à 0, je n'ai (indice -1) parce que vous avez dit, l'indice de total des éléments, de sorte que si le tableau a 10 éléments, dernier élément a un index de 9
@ Masud - vous êtes le code a une erreur de logique si (je suis débutant en Java, donc désolé si je suis incorrect).
recevrez un hors-limites d'erreur que l'index commence à 0 - et donc, ce qui signifie qu'il ne sera pas un indice là.
'index - 1' travail.
Aussi, ce serait de modifier votre base de cas pour le retour de " 0 " à retournant tableau[0] tableau[0] ajout de deux fois et une mauvaise somme.
C'est mon code:
Si vous utilisez Java 1.8, vous pouvez effectuer les opérations suivantes
ou même