Wie finde ich den GGT von drei zahlen in einer einzigen Methode

Ich habe, um sicherzustellen, dass der GGT von 3 zahlen ist nicht größer, als 1.

Hier ist der code, den ich bisher für die Methode:

private int greatestCommonFactor(int a, int b, int c)
{
    for(int n = 0; n <= number; n++)
    {
        if()
    }

    return 1;
}

den return 1 war schon da, als ich anfing zu arbeiten auf das Labor. Wie kann ich sicherstellen, dass der GCD ist nicht mehr als 1? Und wieder alle drei Ganzzahlen?

Hier ist der Rest von dem code, wenn es hilft, herauszufinden, was getan werden muss:

import static java.lang.System.*;

public class Triples
{
 private int number;

public Triples()
{
    this(0);
}

public Triples(int num)
{
    number = num;
}

public void setNum(int num)
{
    number = num;
}

private int greatestCommonFactor(int a, int b, int c)
{
    for(int n = 0; n <= number; n++)
    {
        if()
    }

    return 1;
}

public String toString()
{
    String output="";
    int max = number;
    for(a = 1; a <= max; a++)
    {
        for(b = a +1; b <= max; b++)
        {
            for(c = b + 1; c <= max; c++)
            {
                if(Math.pow(a, 2)+ Math.pow(b, 2)== Math.pow(c, 2))
                {
                    if((a%2==1 && b%2==0)|| (a%2==0 && b%2==1))
                }
            }
        }
    }


    return output+"\n";
}
}

UPDATE

Hier ist meine neue Codierung für das gleiche Labor:

import static java.lang.System.*;

public class Triples
{
 private int number;

public Triples()
{
    this(0);
}

public Triples(int num)
{
    number = num;
}

public void setNum(int num)
{
    number = num;
}

private int greatestCommonFactor(int a, int b, int c)
{
    for(int n = 0; n <= number; n++)
    {
    int max = number;
    for(a = 1; a <= max; a++)
    {
        a = n;
        for(b = a +1; b <= max; b++)
        {
            b =n;
            for(c = b + 1; c <= max; c++)
            {
                c = n;
                if(Math.pow(a, 2)+ Math.pow(b, 2)== Math.pow(c, 2))
                {
                    if((a%2==1 && b%2==0)|| (a%2==0 && b%2==1))
                    {
                        if(a%2<=1 && b%2<=1 && c%2<=1)
                        {
                            return 1;
                        }
                    }
                }
            }
        }
    }
    }

    return 1;
}

public String toString()
{
    String output="";
    output = greatestCommonFactor(a, b, c);


    return output+"\n";
}
}
  • Was meinen Sie mit "return alle drei ganzen zahlen"?
  • int Zeile private int greatestCommonFactor(int a, int b, int c)
  • Hier ist ein link zu einem google-docs-version der lab-Blatt, wenn es hilft: docs.google.com/open?id=0B_ifaCiEZgtcX08tbW1jNThZZmM
  • Ich denke, das ist, was die Frage impliziert : Du hast zu finden, der GCD von a, b und c aus. 1 ist eine 'Standard', weil 1 ist definitiv ein Faktor und die Funktion muss int zurückgeben. Du hast den code zu schreiben für die Bestimmung des GCD und geben Sie den code platziert werden soll, bevor 'return 1;'
  • ist nicht mein code, bevor die return 1; so wie es da steht?
  • Nicht, dass etwas zu tun? Tut es kompilieren überhaupt?
  • noch nicht, ich habe all die anderen Bedingungen, die erfüllt sein muss für eine Pythagoreische Tripel, um wahr zu sein in meiner toString Methode und versuche nur, um herauszufinden, die getGCD Methode für jetzt
  • Warum wollen Sie setzen, dass in der toString(). getGCD() müsste die Logik für die Bestimmung des GCD. Ist es nicht? Die Organisation des Codes nicht korrekt Aussehen.
  • Ich zog den code, die derzeit in der toString() nur vorübergehend zu verschieben, bis ich den GCD selbst gesorgt. Haben Sie getroffen, einen Blick auf die google docs-Datei, die ich aufgeführt in einem Kommentar oben? Innerhalb des Dokuments wird ein "Algorithmus helfen", dass ich orientiere mein setup aus
  • Es gibt jetzt eine neue version der code geändert werden, um den Boden meiner OP

InformationsquelleAutor tech_geek23 | 2012-11-26
Schreibe einen Kommentar