#include using namespace std; /* Calcul nombre de combinaisons de k elements pris parmi n */ int main(){ int n, k, km, i, C, C2; cout << "Entier n ? "; cin >> n; cout << "Entier k ? "; cin >> k; if (k > n-k) km = n-k; else km = k; C = 1; for (i = 1; i <= km; i++){ C2 = C; C *= (n-i+1); if (C/C2 != n-i+1){ cout << "Entier trop grand !" << endl; break; } C /= i; // A noter : C=C*(n-i+1)/i (correct) et C*=(n-i+1)/i (faux) // ou C=C*((n-i+1)/i) (faux) ne sont pas equivalents a cause de // la division d'entiers ! } if (i > km) cout << "Nombre de combinaisons de " << k << " elements pris parmi " << n << " = " << C << endl; return 0; }