2016-11-18 10 views
0

ユークリッドアルゴリズムを使用して2つの数のGCDを求めるプログラムを実行しようとしています。ユークリッドのアルゴリズムでは、大きな数字を小さな数字で割って残りの数字を取り、元の小さな数字を残りの数字で割って、ゼロになるまで続けます。私のプログラムは残りの部分と少数を表示しますが、私はGCDを見つけて各ステップ(プログラムを通過するすべての数字)を出力したいと思います。ユークリッドアルゴリズムを使用するGCDプログラム

import java.util.Scanner; 
import java.util.Random; 

public class GCD{ 

    public static void main(String [] args){ 

     Scanner reader = new Scanner(System.in); 

     double n1; 
     double n2; 
     double firstOperation; 
     double smallNum; 
     double nextOperation; 

     System.out.println("Enter the first number (positive) "); 
     n1 = reader.nextDouble(); 

     System.out.println("Enter the second number (positive)"); 
     n2 = reader.nextDouble(); 

     if (n1 > n2){ 
      smallNum = n2; 
      firstOperation = n1 % n2; 
      System.out.println (firstOperation); 
     } 
     if (n1<n2){ 
      smallNum = n1; 
      firstOperation = n2 % n1; 
      System.out.println (firstOperation); 
     } 
     while (firstOperation >0) 
      nextOperation = smallNum % firstOperation ; 
      //System.out.println(nextOperation); 
     } 
    } 
} 
+0

JAVAではありませんJAVASCRIPT !!!!!!!!! –

+0

最初にdoubleを代入するのではなく、すべての変数にintを使用する – Idali

+0

第二に、whileループは永遠に実行されます。なぜなら、 'firstOperation'は決して変化しないからです – Wiebe

答えて

0
public static int gcd(int a, int b) { 
    System.out.println(String.format("Calculating GCD of %d and %d", a, b)); 
    if(b == 0) { 
     return a; 
    } 
    return gcd(b, a % b); 
} 
関連する問題