[Java] selectionner le premier nombre > 0
evan...
Messages postés
46
Date d'inscription
Statut
Membre
Dernière intervention
-
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
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
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Afficher le 0 devant un nombre dans excel - Guide
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
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