Programme en C++ pour calculer le plus grand commun diviseur

J'ai commencé ce programme pour calculer le plus grand commun diviseur. C'est ce que j'ai à ce jour:

#include <iostream>
#include <math.h>
using namespace std;
int getGCD(int a, int b)
{
    a = a % b;
    if (a == 0)
    {
        return b;
        b = b % a;
    }
    if (b == 0)
    {
        return a;
    }
}
int main()

{
    int x, y;
    cout << "Please enter two integers x and y, for GCD calculation" << endl;
    cin >> x >> y;
    cout << "The GCD of " << x << "and " << y << " is" << getGCD(x, y) << endl;
    return 0;
}

Je reçois toujours un 0 pour le PGCD. Ce que je fais mal?

  • b = b % a; ne s'exécutera jamais
  • vérifier le retour à la ligne b; et demandez-vous, comment le programme peut exécuter b = b % a; si vous le disais en début de retour de cette fonction.
  • si c'est les devoirs, vous devez ajouter la balise appropriée 🙂
  • pour le fun, voir le PGCD algo évaluée au moment de la compilation (à l'aide de modèles): blog.emptycrate.com/node/279
  • Le fait que votre fonction prétend toujours le bon résultat après un seul appel, devrait donner quelque chose d'anormal.
  • int g(int a, int b){ return b?g(b,a%b):a;}

InformationsquelleAutor user964141 | 2011-09-25