This commit is contained in:
2026-10-26 16:52:30 +01:00
parent 2a9ee49204
commit 39d184707a
+11 -6
View File
@@ -244,18 +244,23 @@ long nb_paires_opposees(const Transaction *t, int n)
return nb; return nb;
} }
/* F8 : nombre de façons de rendre une somme avec les pièces disponibles */
/* F8 : nombre de façons de rendre une somme avec les pièces disponibles */ /* F8 : nombre de façons de rendre une somme avec les pièces disponibles */
static const int PIECES[] = {1, 2, 5, 10, 20, 50, 100, 200}; static const int PIECES[] = {1, 2, 5, 10, 20, 50, 100, 200};
#define NB_PIECES 8 #define NB_PIECES 8
long nb_facons_rendre(int somme, int nb_pieces) long nb_facons_rendre(int somme, int nb_pieces)
{ {
if (somme == 0) long dp[MONTANT_MONNAIE + 1] = {0};
return 1; dp[0] = 1;
if (somme < 0 || nb_pieces == 0)
return 0; for (int i = 0; i < nb_pieces; i++) {
return nb_facons_rendre(somme - PIECES[nb_pieces - 1], nb_pieces) + for (int s = PIECES[i]; s <= somme; s++) {
nb_facons_rendre(somme, nb_pieces - 1); dp[s] += dp[s - PIECES[i]];
}
}
return dp[somme];
} }
/* F9 : catégorie d'une transaction (pour les statistiques) */ /* F9 : catégorie d'une transaction (pour les statistiques) */