Combinaison possible

Signaler
Messages postés
40
Date d'inscription
mardi 8 novembre 2005
Statut
Membre
Dernière intervention
9 mai 2007
-
Messages postés
40
Date d'inscription
mardi 8 novembre 2005
Statut
Membre
Dernière intervention
9 mai 2007
-
Ecrire un programme en C++ qui permet de déterminer toute les combinaisons possibles à partir d'un ensemble de 3 valeurs entières données.
Exemple d'exécution :

Valeur 1 : 1
Valeur 2 : 3
valeur 3 : 5

135 - 153 - 351 - 315 - 513 -531

4 réponses

Messages postés
2671
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
2
Il existe les mathématiques pour ca.
Regarde du coté des combinaisons et arrangement.

Shell
Messages postés
2671
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
2
Pour te simplifier la chose, la réponse est d'utiliser les factorielle.
Avec 3 chiffres, tu peux former : 3! 3 * 2 * 1 6 combinaisonsAvec 4 chiffres, tu peux former : 4! 4 * 3 * 2 * 1 24 combinaisons.

Si tu en es pas convaincu, tu n'as qu'a faire des arbres.

En gros, je te conseil de te créer une fonction factorielle qui te renvoie la factorielle d'un nombre :

int Factorielle(int iNombre)
{
int i;
int iRet;

iRet = 1;

for(i=2;i<=iNombre;i++)
{
iRet *= i;
}

return iRet;
}

Shell
Messages postés
233
Date d'inscription
jeudi 4 juillet 2002
Statut
Membre
Dernière intervention
5 juillet 2008

pour 3 de longueurs on va pas aller se faire chier avec les maths :)

bruteforce en testant que la valeur n'est pas déjà utilisée et puis voilà



#include <stdio.h>



int main (void)

{

int tab[3]={0,1,2};

unsigned int uI1;

unsigned int uI2;

unsigned int uI3;



for (uI1=0;uI1<3;uI1++)

{

for (uI2=0;uI2<3;uI2++)

{

if (uI2 != uI1)

{

for (uI3=0;uI3<3;uI3++)

{


if ((uI3 != uI1) && (uI3
!= uI2))

{


fprintf
(stderr,"%d-%d-%d\n",tab[uI1],tab[uI2],tab[uI3]);

}

}

}

}

}



return 0;

}



bye
Messages postés
40
Date d'inscription
mardi 8 novembre 2005
Statut
Membre
Dernière intervention
9 mai 2007

merci pour l'aide :)