Partage
  • Partager sur Facebook
  • Partager sur Twitter

Recursion Scala

Sujet résolu
19 février 2021 à 3:02:34

Bonjour, je doit écrire une fonction récursive qui est prend en paramètre un entier n positif ou nul et qui return le chiffre le plus à gauche dans l'écriture de n en supposant que l'écriture de n n'a pas de 0 superflu à gauche.

exemple : pour 2058 ça doit renvoyer 2 et pour 147 ça renvoi 1.

J'essaye de penser à toute les possibilité notamment diviser n par 10 avec un pattern matching , mais je n'y arrive pas. 

Je demande pas une réponse juste une indication, une piste.

Merci d'avance !

  • Partager sur Facebook
  • Partager sur Twitter
19 février 2021 à 10:59:19

Salut,

Diviser par 10 est en effet la bonne solution. Ce qu'il faut maintenant, c'est trouver un cas d'arrêt. Le cas où on connaît « facilement le chiffre le plus à gauche de n, c'est le cas où n n'a qu'un chiffre (donc n < 10). Et si n est plus grand que 10, en divisant par 10, on va « perdre » le chiffre le plus à droite, puis on refait l'opération dans l'appel récursif, jusqu'à ce qu'il ne reste qu'un seul chiffre.

Par exemple, 2058 / 10 donne 205, 205 / 10 donne 20, 20 / 10 donne 2, et comme 2 n'a qu'un chiffre, c'est bon, on a terminé, on retourne 2.

  • Partager sur Facebook
  • Partager sur Twitter
Tutoriel Ruby - Bon tutoriel C - Tutoriel SDL 2 - Python avancé - Faîtes un zeste, devenez des zesteurs
19 février 2021 à 15:25:10

diviser par 10 tant que le résultat est supérieur ou égale à 10
  • Partager sur Facebook
  • Partager sur Twitter
21 février 2021 à 13:37:51

Merci beaucoup pour votre aide, j'y suis enfin arrivé !

-
Edité par MelB.ba 21 février 2021 à 13:38:21

  • Partager sur Facebook
  • Partager sur Twitter