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

  1. 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
    1. Mr. D@RK Messages postés 32 Statut Membre 28
       
      N'oubliez pas de mettre "Problème résolu" ;)
      0
  2. 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
    1. 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
    2. 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
    3. 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
    4. robi61
       
      euh tu peux me donner le code source complet car le mien marche pas je sais pas pourquoi.
      0
    5. 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
  3. chuka Messages postés 980 Statut Membre 379
     
    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