• [^] # Re: Pas de force brute, mais soyons bourrins, oh oui, bourrins !

    Posté par . En réponse au message Avent du Code, jour 21. Évalué à 1.

    Personnellement j'ai fait un Tree et j'ai utilise de la recursion pour les deux parties.

    1ere partie: node::calculate() renvoie child1.calculate() plus/moins/fois/divise par child2.calculate()

    2e partie: node::findUnknown(expectedResult)-> Unknown
    D'abord je fait un calculate() de chaque child pour savoir qui a une valeur et qui a l'unknown.
    Imaginons que child1 a la valeur et node.operation est *, ma fonction retourne findUnknown(expectedResult / child1.val)
    Imaginons que child1 a la valeur et node.operation est +, ma fonction retourne findUnknown(expectedResult - child1.val)
    Etc.

    Je fais findUnknown recursivement a partir du root et ca me donne la bonne reponse.

    Excusez l'absence d'accents dans mes commentaires, j'habite en Australie et n'ai pas de clavier francais sous la main.