J'essaie d'écrire une fonction GCD pour calculer gcd de deux entiers en utilisant l'algorithme euclids. Dans la fonction si j'efface "else" il sort 3 qui est incorrect. Mais si j'utilise "else", il sort 1 qui est la sortie correcte. je suppose que si je n'utilise pas "else" la fonction est toujours correcte. Pourquoi suis-je obtenir deux sorties différentes.Pourquoi la sortie diffère si j'efface "else" de la fonction?
Voici mon code,
#include <iostream>
using namespace std;
int euclidGcd(int x , int y){
if(x%y!=0)
euclidGcd(y , x%y);
else
return y;
}
int main(){
cout<<euclidGcd(2,3)<<"\n";
return 0;
}
La branche 'if' ne renvoie pas de valeur. –
Lorsque 'x% y == 0', votre fonction ne retourne pas; c'est un comportement indéfini – Justin
merci de votre aide .. :) –