Programme en C (casse-tête)

robi61 -  
Mr. D@RK Messages postés 32 Statut Membre -
Bonjour,
alors voilà mon problème :
je suis tombé sur une énigme et je me suis dis que je pourrais la résoudre avec un programme pour réviser mon C. J'ai tout essayé mais rien n'a marché. voilà le but du programme :

xxx*x=xxxx
(x = chiffre quelconque)
chaque chiffre doit être différent (et de 1 à 8)
je dois trouver deux multiplications dont le résultat est bon.
j'ai essayé de faire deux tableaux pour les nombres a 3 et 4 chiffres mais la valeur de mon tableau change durant les tests que j'ai fait pour savoir si il y avait des chiffres communs dans les combinaisons.

Bref, je cherche le code C exact pour réduire le champ de recherche voir même trouver la réponse.

Merci d'avance.



3 réponses

Mr. D@RK Messages postés 32 Statut Membre 28
 
Pour les multiplications de la forme xxx*x = xxxx (x entre 1 et 8):
453*6=2718
582*3=1746
Voici le code source:
fr . dark-creation . co . cc / main1 .c

Pour les multiplications de la forme xxx*xx = xxxx (x entre 1 et 9):
138*42=5796
157*28=4396
159*48=7632
186*39=7254
198*27=5346
297*18=5346
483*12=5796
Voici le code source:
fr . dark-creation . co . cc / main2 .c

PS: copier/coller l'adresse et puis supprimez les espaces ;)
Cdlt,
18
Mr. D@RK Messages postés 32 Statut Membre 28
 
N'oubliez pas de mettre "Problème résolu" ;)
0
Mr. D@RK
 
Explicite ton problème... Tu veux faire un programme qui trouve des nombres-vampires? c'est à dire des multiplications comme: 27*81 = 2187 ou encore 35*41 = 1435 ??
Si tu m'explique clairement ce que tu veux, je pourrais le réaliser ce soir ;)

Cdlt =)
2
robi61
 
je voudrais le code source pour trouver les nombres (j'ai déjà la réponse mais je veux le code)
c'est un programme qui cherche toutes les possibilités de nombres tout en vérifiant que aucun chiffre n'est pareil (ex: 34*56 il n'y a qu'une seule fois chaque chiffre).
0
robi61
 
En fait mon plus gros problème c'est d'affecter un nombre complet a un tableau ex: 6123
donc tableau[0] = {6};
tableau[1] = {1};
tableau[2] = {2};
tableau[3] = {3};
Voilà j'espère que quelqu'un pourra m'aider.
Merci d'avance.
0
M4X 0000FF Messages postés 220 Statut Membre 19
 
Salut !
Perso, je trouve que la programmation modulaire est... super ^^
Donc je te suggère de faire une fonction de se style:

void nombre_vers_tableau (int nombre, int *tableau)
{
    tableau[0] = nombre / 1000 ;
    tableau[1] = ( nombre / 100 ) % 10  ;
    tableau[2] = ( nombre / 10 ) % 10 ;
    tableau[3] = nombre % 10 ;
}
0
robi61
 
euh tu peux me donner le code source complet car le mien marche pas je sais pas pourquoi.
0
M4X 0000FF Messages postés 220 Statut Membre 19
 
Eh bien mon cher, pour te donner une solution [à supposer que tu t'es vraiment bien cassé la tête sur ton exercice ^^ ] faudrai que tu me confirme le peu que j'ai pu comprendre de ta question initiale:
étant donne 4 chiffres a,b,c,d non nuls inférieurs strictement à 9 chaqu'un, trouver les nombres x = abc et y = d tel que
x * y = z = abcd

j'ai bien compris l'énoncé ? ou pas ?

PS: tu peu aussi nous aider à t'aider, par exemple en mettant ton code source érroné [j'éspère que tu indente bien ^^]
0
chuka Messages postés 965 Date d'inscription   Statut Membre Dernière intervention   378
 
Salut,
j'ai trouvé les résultats suivant:
453*6=2718
582*3=1746
mon algo est vraiment pas beau ....donc je pense que tu pourras faire mieux....
@+
0