Programme en C (casse-tête)

Fermé
robi61 - 17 juil. 2010 à 20:04
Mr. D@RK Messages postés 26 Date d'inscription lundi 19 juillet 2010 Statut Membre Dernière intervention 16 octobre 2010 - 20 juil. 2010 à 01:02
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 26 Date d'inscription lundi 19 juillet 2010 Statut Membre Dernière intervention 16 octobre 2010 28
Modifié par Mr. D@RK le 19/07/2010 à 23:32
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 26 Date d'inscription lundi 19 juillet 2010 Statut Membre Dernière intervention 16 octobre 2010 28
20 juil. 2010 à 01:02
N'oubliez pas de mettre "Problème résolu" ;)
0
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
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
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 201 Date d'inscription samedi 10 juillet 2010 Statut Membre Dernière intervention 9 septembre 2010 19
19 juil. 2010 à 13:30
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
euh tu peux me donner le code source complet car le mien marche pas je sais pas pourquoi.
0
M4X 0000FF Messages postés 201 Date d'inscription samedi 10 juillet 2010 Statut Membre Dernière intervention 9 septembre 2010 19
Modifié par M4X 0000FF le 19/07/2010 à 17:26
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 samedi 11 octobre 2008 Statut Membre Dernière intervention 29 juillet 2010 378
Modifié par chuka le 18/07/2010 à 08:55
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