Problème compréhension du programme le compte est bon

cs_echec Messages postés 3 Date d'inscription mercredi 11 mars 2009 Statut Membre Dernière intervention 22 avril 2009 - 22 avril 2009 à 09:57
007Julien Messages postés 276 Date d'inscription mercredi 22 septembre 2010 Statut Membre Dernière intervention 8 janvier 2014 - 22 sept. 2010 à 14:09
Bonjour,
Je cherchai un programme c++ sur internet qui permettait de calculer la solution du jeu le compte est bon, j'en est finalement trouvé un, mais j'ai du mal à en comprendre le fonctionnement. Pouvez vous m'aidez svp?

ps: ce programme se compile bien et fonctionne

/* decomposer n en une operation de au plus a nombres du tableau t
 */
#include <stdio.h>
#include <string.h>
#include <conio.h>

int i;

typedef long (* fct)(long, long);

//Les 4 opérations fondamentales
long plus(long a, long b) { return a+b;}
long moins(long a, long b) { return a-b;}
long mult(long a, long b) { return (a==1 || b==1)?-10000:a*b;}
long div(long a, long b) { return (b!=0 && a%b==0)?a/b:-10000;}

fct f[]={div,mult,plus, moins};
char nom[]={'/','x','+','-'};
char res[255];

//Fonction de decomposition
long decompose(long n, long a, long *t)
{
    long v[6];
    char tmp[80];
    int i,j,k,l,op;
    if (a<=0) return 0;
    if (a==1)
    {
        if (n==t[0])
        return 1;
        else
        return 0;
    }

    for (i=0;i0)?-1:1);
    n+=d;
    printf("%ld\n ",n);
}
    printf("\n%ld",n);
    printf("\n");
    printf(res);
    printf("--------------\n");
    /*}*/
    printf("\nFin de la recherche...");
getch();
return 0;
}

2 réponses

cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
22 avril 2009 à 14:05
Salut,

Parcourut en diagonal, c'est du C. Cours de C ici.

M'étonnerais que quelqu'un fasse ce boulot à ta place.
0
007Julien Messages postés 276 Date d'inscription mercredi 22 septembre 2010 Statut Membre Dernière intervention 8 janvier 2014 4
22 sept. 2010 à 14:09
Ce programme utilise la fonction récurrente decompose pour passer de la recherche du nombre n, avec a plaques (initiallement 6), figurant dans le tableau t, au problème plus simple (une plaque de moins) obtenu après application d'une opération à deux plaques i et j (deux boucles en i et j dans la fonction).

En reprenant le principe, mais : [list]en évitant les appels de fonctions pour effectuer de simples tests sur les valeurs t[i] et t[j] (surtout lorsque les opérations sont commutatives ou à sens unique)./list[list]en opérant le test de fin non pas sur toutes les plaques mais seulement sur le résultat des opérations,/list[list]en utilisant des variables globales n (invariant dans la récurence) et t (tableau global sur lequel on travaille à différents à niveaux définis par a),/list[list]et en incorporant le tout dans un objet,/list
on peut élaborer un Compte est bon avec un simple script sur une page html.
0
Rejoignez-nous