[.net2]algorightme d'euclide

Soyez le premier à donner votre avis sur cette source.

Vue 11 581 fois - Téléchargée 303 fois

Description

Bein c'est tout simple, c'est un algorithme d'Euclide qui sert à calculer le plus grand diviseur commun de deux nombre.Il est écrit en .NET2, sous Visual Studio 2005 Beta 2, je ne l'ais pas testé sous Visual C# 2005 Express.

Source / Exemple :


// Explications
// L'algorithme d'Euclide est en fait très simple,
// il s'agit de récupérer le reste d'une division.
// On boucle cette opération jusqu'a obtenir un reste nul,
// et la, on prend le dernier reste non nul que l'on a récupéré.
// (Je sais j'explique mal ^^)
// Bon, je met le bout de code qui concerne cette operation
int PGCD(int nA, int nB)
{
    // Variables temporaires
    int nC = 0;
    int nPGCD = 0;
    // Regarde les valeurs de A et de B et effectue un swap si nA < nB
    if (nA < nB)
    {
        // Récupère la valeur de nB
        nC = nB;
        // Change la valeur de nB en nA
        nB = nA;
        // Change la valeur de nA en nB (donc, en utilisant la variable nC)
        nA = nC;
    }
    // Lance une boucle qui ne s'arrete que si nA % nB = 0
    while (true)
    {
        // Récupère le reste de la division nA / nB
        nC = nA % nB;
        // Teste si nC vaut 0
        if (nC == 0)
        {
            // nC vaut 0, donc le calcul est terminé, nPGCD = nB
            nPGCD = nB;
            // Termine la boucle
            break;
        }
        nA = nB;
        nB = nC;
        }
    // Retourne le résultat
    return nPGCD;
    //Si nPGCD = 1, c'est que les deux nombre sont indivisibles
}

Conclusion :


Liste des Bugs :
- S'il y en a, je ne les connais pas, ou je ne les ai pas vu, ou encore, je ne m'en souvient plus.
- La fonction que j'ai affichée dans la section code est peut-etre buggé, car c'est une adaptation à "l'arrache" de la fonction que j'ai écrite dans mon code.
- N'hésitez pas à laisser des commentaires.

Cordialement, Gwaihir, webmaster de www.dotnetportalfr.com (en construction)

Codes Sources

A voir également

Ajouter un commentaire Commentaire
Messages postés
11
Date d'inscription
mercredi 8 février 2006
Statut
Membre
Dernière intervention
26 mars 2006

On peut échanger nA et nB en une seule ligne de code (testé et fonctionnel) :
nA ^= nB ^= nA ^= nB

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Du même auteur (cs_Gwaihir)