2010-12-13 4 views
1

Comment puis-je récupérer le nombre le plus élevé dans un tableau récursivement en C#?Récupérer le nombre le plus élevé dans un tableau récursivement en C#?

+6

est ce devoir? – BrokenGlass

+0

Quel est le problème? Créez une fonction qui boucle récursivement dans un tableau et créez une variable de valeur max. Si la valeur actuelle de la position actuelle dans le tableau est supérieure à la valeur max actuelle, valeur max = élément courant. Facile comme ça. – Lockhead

+1

Plus d'informations sont nécessaires si vous voulez une réponse pertinente. – Tipx

Répondre

4

est ici un soupçon (en int[] comme exemple):

public int FindMax(int[] array, int indexSoFar, int maxSoFar) 

Pensez à:

  • Les conditions de démarrage
  • Les conditions de résiliation
  • Comment vous déplacez à travers le réseau récursivement
0

Reason of EDIT: ne voulait pas gâcher la réponse. Salutations.

8

À l'heure actuelle, vous pensez probablement que nous sommes méchants de ne pas vous avoir donné la réponse - et j'avoue que j'ai la réponse écrite et qu'une partie de moi veut vous la donner, même.

La programmation consiste à trouver vous-même les solutions aux problèmes. Lorsque vous êtes embauché comme programmeur, vous pouvez avoir d'autres personnes sur lesquelles s'appuyer, mais ils ont tous leurs propres problèmes, et vous devrez être en mesure de prendre votre propre poids. La récursion (dans une réponse trop simplifiée) consiste à répéter la même opération encore et encore jusqu'à ce que le résultat soit produit. Cela signifie que vous avez besoin dans chaque opération récursive, vous devez savoir (au moins) deux choses:

  1. Qu'est-ce que vous cherchez
  2. Qu'est-ce que vous avez trouvé jusqu'à présent

Le ' Ce que vous cherchez 'est la condition de résiliation. Une fois que vous avez trouvé cela, tout le travail peut s'arrêter et vous pouvez rentrer à la maison.

Le 'ce que vous avez trouvé jusqu'ici' est comment vous savez ce que vous avez vérifié afin de ne pas rechaper le terrain.

Alors, que devez-vous savoir pour trouver la valeur la plus élevée dans un tableau récursivement?

  1. Le contenu du tableau.
  2. Le plus grand nombre que vous avez trouvé jusqu'ici.
  3. Avez-vous déjà regardé cette partie du tableau? (Pourquoi regarder à travers encore?)

qui produirait une signature de méthode qui ressemble à:

public int GetHighestNumber(int[] array, int highestNumberFound, int lastIndexChecked); 

Une fois que vous êtes à l'intérieur du tableau, vous devez faire ce qui suit:

  1. Itérer à travers le réseau
  2. Stop lorsque vous trouvez une valeur qui est supérieure à la highestNumberFound
  3. Appelez GetHighestNumber à nouveau avec le nouveau highestNumberFound et lastIndexChecked mis à jour.
  4. Lorsqu'il n'y a plus de nombres «supérieurs», renvoyez le nombre le plus élevé trouvé.

Je me rends compte que cela semble banal, mais d'apprendre ce genre de choses sur votre propre vous fera un meilleur programmeur.

Si vous voulez être un programmeur professionnel, vous devez apprendre ce genre de choses par vous-même.

Si vous ne voulez pas être un programmeur professionnel, alors laissez tomber le cours et faites quelque chose que vous aimez.

Questions connexes