Bonsoir à vous !
Je souhaite écrire un algorithme qui va me permettre d'avoir le nombre d'étapes pour ramener un nombre à zéro selon les conditions :
Si le nombre est pair, on le divise par 2; sinon on en soustrait 1 puis on le divise par 2 jusqu'à ce qu'on obtienne 0.
Exemple !
8
Étape(1): 8/2=4
Étape (2):4/2=2
Étape (3):2/2=1
Étape (4):1-1=0
Nombre d'étapes egale 4
J'ai pu écrire l'algorithme qui le ramene à zéro mais je ne sais pas comment procéder pour avoir le nombre d'étapes :
Algorithme nombreEtapes
Var n: entier p:entier m:reel q:entier
debut
ecrire('')
lire(n)
p<-n/2;
m<-n/2;
q=0
tantque q<>0 faire
si p-m=0 alors
q<- (p/2);
sinon
q<-(p-1)/2
finsi
fintantque
ecrire(q)
Fin
-----