Bonjour à tous , je suis nouveau sur le forum et aussi debutant en programmation .
Ma vraie passion c'est la programmation C et particulierement sous Linux ( J'ai reussi à completement me passer de windows ^^ ) bref , en cours on fait de la programmation fonctionnelle avec Scheme , et j'avoue que je le trouve assez impressionant coté graphisme mais j'en en suis pas encore la .
J'ai un probleme avec un exercice de recursivité , celui du calcul du nombre de bits binaires qui constituent un decimal , l'algorithme qui m'est directement venu à l'esprit c'est la division par 2 ce qui donne :
Le probleme c'est que si le parametre n=0 des le debut le resultat est erroné , or 0 est representé par 1 bit , je n'arrive pas à trouver la solution en sachant que je n'ai droit qu'à des fonctions primitives et que je dois utiliser la reccursion
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 ;;;nbits: ent > ent ;;;(nbits n) donne le nombre de bits significatifs dans l'ecriture en base 2 d'un entier naturel donné en base 10 (define (nbits n) (if (= n 0) 0 (+ 1 (nbits (quotient n 2))) ) ) (nbits 0) ;;; 0 (faux)
Merci d'avance
Partager