Que font les fonctions biz1 et biz2 suivantes ?
int biz1(int a) { return a*((a>0)-(a<0)); } int biz2(int a, int b) { if (a+=b) return a; return b; }
Écrire une fonction fact calculant n!. Cette fonction prendra en paramètre l'entier et retourna la valeur entière n!. On rappelle que n! = n(n-1)(n-2) ··· 2. Pour quelles valeurs de n la fonction fact donne-t-elle un résultat correcte ?
Écrire une fonction maxfact qui pour un entier k donné en paramètre calcule le plus grand entier n tel que n! ≤ k. Peut on améliorer la complexité de cette fonction ?
Utiliser la fonction fact de l'exercice précédent pour écrire une fonction binome qui calcule les coefficients du binômes Cnp = n!/((n-p)!p!). Quelle est la complexité de cette fonction ? Quelle est la valeur maximale calculable ? Proposer d'autres méthodes (non récursives) plus économiques et permettant de calculer des valeurs de Cnp beaucoup plus grandes.
Écrire une fonction binaire qui prend en paramètre un entier et qui affiche son écriture binaire (en base 2).
On s'intéresse encore aux coefficients du binôme Cnp=n!/((n-p)!p!). Ceux-ci peuvent être définis par la relation de récurrence suivante : Cnp =