[Java] selectionner le premier nombre > 0
evan...
Messages postés
59
Statut
Membre
-
KX Messages postés 19031 Statut Modérateur -
KX Messages postés 19031 Statut Modérateur -
Bonjour,
Je développe un petit programme qui calcule le PGCD de deux nombres, pour le collège.
Cependant j'ai un petit problème, comment je peux sélectionner le premier nombre (reste) au dessus de 0 dans la boucle de cette fonction :
Je suis sûr que la solution est toute simple mais je ne la trouve pas.
Merci d'avance pour vos solution !
Je développe un petit programme qui calcule le PGCD de deux nombres, pour le collège.
Cependant j'ai un petit problème, comment je peux sélectionner le premier nombre (reste) au dessus de 0 dans la boucle de cette fonction :
public static int calcul(int dividende, int diviseur, int quotient, int reste) {
while(reste > 0) {
dividende = diviseur;
diviseur = reste;
quotient = dividende / diviseur;
reste = dividende % diviseur;
}
return reste;
}
Je suis sûr que la solution est toute simple mais je ne la trouve pas.
Merci d'avance pour vos solution !
A voir également:
- [Java] selectionner le premier nombre > 0
- Jeux java itel - Télécharger - Jeux vidéo
- Waptrick java football - Télécharger - Jeux vidéo
- Afficher le 0 devant un nombre dans excel - Guide
- Eclipse java - Télécharger - Langages
- Waptrick java voiture - Télécharger - Jeux vidéo
1 réponse
Si le dernier reste est nul, alors l'avant dernier reste c'est le dernier dividende.
Remarque : normalement tu n'as pas à passer quotient et reste en paramètre de la méthode, ils devraient être déclarés à l'intérieur (sachant que quotient ne sert à rien ici). De plus, il serait préférable d'utiliser une boucle do while qui s'adapte mieux à ce genre de cas où il faut faire au moins un tour.
Remarque : Il existe également des méthodes de programmation dite récursives qui sont encore plus simple pour des algorithmes comme ça :
Remarque : normalement tu n'as pas à passer quotient et reste en paramètre de la méthode, ils devraient être déclarés à l'intérieur (sachant que quotient ne sert à rien ici). De plus, il serait préférable d'utiliser une boucle do while qui s'adapte mieux à ce genre de cas où il faut faire au moins un tour.
public static int calcul(int dividende, int diviseur)
{
//int quotient;
int reste;
do
{
//quotient = dividende / diviseur;
reste = dividende % diviseur;
dividende = diviseur;
diviseur = reste;
}
while (reste>0);
return dividende;
}
Remarque : Il existe également des méthodes de programmation dite récursives qui sont encore plus simple pour des algorithmes comme ça :
public static long pgcd(long a, long b)
{
return b==0 ? a : pgcd(b,a%b);
}La confiance n'exclut pas le contrôle