Informatică, întrebare adresată de printess199, 8 ani în urmă

PBINFO 3981
Cerința
Scrieți funcția recursivă DivImpRec care primind ca parametru un număr natural nenul n, returnează cel mai mare divizor impar al său.

Restricții și precizări
1 ≤ n ≤ 2.000.000.000
Numele funcției este DivImpRec.
Se recomandă utilizarea recursivității în rezolvarea problemei. De asemenea, se recomandă să nu se folosească alte funcții suplimentare.



Exemplu
DivImpRec(24) = 3.

Important
Soluția propusă va conține doar funcția cerută. Introducerea în soluție a altor instrucțiuni poate duce la erori de compilare sau de execuție, care vor duce la depunctarea soluției.

Răspunsuri la întrebare

Răspuns de Baca02
16

Răspuns:

int DivImpRec(int n)

{

   if(n%2!=0) return n;

       return DivImpRec(n/2);

}

Explicație:

Imparte un numar la 2 pana cand devine impar:

-par:12/2=6/2=3

-impar:13(ramane asa, fiind cmmdc al lui)


printess199: Multumesc!
Alte întrebări interesante