Hi, stehe hier vor einem Problem, das mich in den Wahnsinn treibt.
Dieses nette Programm berechnet mir den größten gemeinsamen Teiler der eingegebenen Zahl und i=1 bis i=zahl
(z.B. ich gebe 6 ein ,er erechnet: ggt(6,1); ggt(6,2); ggt(6,3); ggt(6,4); ggt(6,5) und ggt(6,6))
nun will ich, dass am ende die eingegebene Zahl um eins erniedrigt wird, anschließend soll mit dieser Zahl dann das ganze Programm durchgegangen werden. (also wenn zahl 6 war, dann soll sie 5 werden und den ganzen vorherigen kram machen ... ggt(5,1) ...ggt(5,6)). so dass ich alle Kombinationsmöglichkeiten durchgehe.
hat jemand nen plan, wie ich das mache??
danke schonmal!!
Dieses nette Programm berechnet mir den größten gemeinsamen Teiler der eingegebenen Zahl und i=1 bis i=zahl
(z.B. ich gebe 6 ein ,er erechnet: ggt(6,1); ggt(6,2); ggt(6,3); ggt(6,4); ggt(6,5) und ggt(6,6))
nun will ich, dass am ende die eingegebene Zahl um eins erniedrigt wird, anschließend soll mit dieser Zahl dann das ganze Programm durchgegangen werden. (also wenn zahl 6 war, dann soll sie 5 werden und den ganzen vorherigen kram machen ... ggt(5,1) ...ggt(5,6)). so dass ich alle Kombinationsmöglichkeiten durchgehe.
Code:
import AlgoTools.IO; //um ein-und ausgabe zu vereinfachen...
public class aufg{
public static void main(String [] argv){
int zahl=0, i=1, fuerzahl=0, fueri=0;
zahl=IO.readInt("zahl eing: ");
fuerzahl=zahl;
fueri=i;
//-------------------------------------------------
do{
while(zahl!=i){ //Euklid-Algorithmus, um
if (zahl>i)zahl=zahl-i; //..GGT von zwei Zahlen zu errechnen
else i=i-zahl; //hier: zahl und i=1, i=2, i=3 ... i=6
}IO.println("ggt: "+zahl);
fueri++; //i=1 um eins erhöhen
i=fueri; // (nun: i=2)
zahl=fuerzahl; // zahl bekommt den anfangswert
}while(fueri<=fuerzahl); // solange, wie zahl größer als i
//----------------------------------------------------------
}
}
hat jemand nen plan, wie ich das mache??
danke schonmal!!