PGCD - Code

Voir le sujet précédent Voir le sujet suivant Aller en bas

PGCD - Code

Message par NicolasD le Lun 29 Sep - 22:32

Voici mon code. J'ai vu sur internet qu'il y avait des solutions plus rapides, mais j'ai respecté le schéma du prof.

@Phil : d'avance : Fuck off Very Happy

Code:
public class pgcd {
   public static void main(String[] args) {
      int a = Integer.parseInt(args[0]);
      int b = Integer.parseInt(args[1]);
      long startTime, endTime;
      
      startTime = System.nanoTime();
      int result = pgcd(a,b);
      endTime = System.nanoTime();
      endTime -= startTime;
      
      if(result != 0) {
         System.out.println("Le PGCD de " +a+ " et de " +b+ " est " +result+ ".");   
      }
      else {
         System.out.println(a+ " et " +b+ " n'ont aucun PGCD.");   
      }
      
      System.out.println("Temps d'execution : " +endTime+ " ns.");
   
   }
   
   public static int pgcd(int a, int b) {
      int c;
      if(a < b) {
         int tmp = a;
         a = b;
         b = tmp;
      }
      c = a-b;
      
      //System.out.println("BE a = " +a+ " - b = " +b+ " - c = " +c);
      while(a > b) {
         int tmp;
         tmp = a;
         a = c;
         c = a-b;
         //System.out.println("IN a = " +a+ " - b = " +b+ " - c = " +c);
         while(b > c) {
            
            a = b;
            b = c;
            c = a-b;
            //System.out.println("IF a = " +a+ " - b = " +b+ " - c = " +c);
         }
         if(b == c) {
               return c;
            }
            else if(b <= 1) {
               return 0;
            }
      }
      
      return 0;
   }   
   
}
avatar
NicolasD

Messages : 91
Date d'inscription : 23/10/2013

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum