C# :: Aufgabe #69 :: Lösung #6
11 Lösungen

#69
Größter gemeinsamer Teiler
Anfänger - C#
von hobeditz
- 19.09.2014 um 20:58 Uhr
Entwickeln Sie ein Programm, welches den größten gemeinsamen Teiler zweier Zahlen ermittelt. Die Zahlen sollen vom Nutzer selber bestimmt werden.
Zitat:
Tipp:
Der euklidische Algorithmus könnte helfen.
#6

von peterindies (440 Punkte)
- 03.12.2014 um 17:11 Uhr
Zitat:
Habe hier den Euklidischen Algorithmus verwendet.

using System; namespace ConsoleApplication11 { internal class Rest { public double restzahlberrechnung(int ergebnisholen, double zahl2, double zahl1) { int neuezahl = ergebnisholen; double zwischenergebnis = neuezahl * zahl2; double restzahl = zahl1 - zwischenergebnis; return restzahl; } } internal class Program { private static void Main(string[] args) { Console.WriteLine("Berrechnung eines gemeinsamen Teilers zweier Zahlen:"); start: Rest klasse = new Rest(); Console.WriteLine("erste zahl:"); string erstezahl = Console.ReadLine(); Console.WriteLine("zweite zahl:"); string zweitezahl = Console.ReadLine(); double zahl1; double zahl2; if (double.TryParse(erstezahl, out zahl1) && double.TryParse(zweitezahl, out zahl2)) { double restzahl = 1; double altergebnis; double restzahlneu = 1; while (restzahl != 0) { altergebnis = zahl1 / zahl2; int ergebnis = (int)altergebnis; restzahl = klasse.restzahlberrechnung(ergebnis, zahl2, zahl1); altergebnis = zahl2 / restzahl; ergebnis = (int)altergebnis; restzahlneu = klasse.restzahlberrechnung(ergebnis, restzahl, zahl2); if (restzahlneu == 0.0) { break; } altergebnis = restzahl / restzahlneu; ergebnis = (int)altergebnis; // 2 restzahl = klasse.restzahlberrechnung(ergebnis, restzahlneu, restzahl); double secondnumber = 0; if (restzahl != 0.00) { secondnumber = restzahlneu; double newrestzahl = restzahl; while (newrestzahl != 0.00) { restzahlneu = secondnumber / newrestzahl; int ganzesergebnis = (int)restzahlneu; double zwischennummer = newrestzahl; newrestzahl = klasse.restzahlberrechnung(ganzesergebnis, newrestzahl, secondnumber); secondnumber = zwischennummer; } restzahl = newrestzahl; Console.WriteLine("Der gemeinsame Teiler ist {0}", secondnumber); Console.ReadLine(); goto start; } } if (restzahlneu == 0.0) { Console.WriteLine("Der gemeinsame Teiler ist {0}", restzahl); goto start; } Console.WriteLine("Der gemeinsame Teiler ist {0}", restzahlneu); Console.ReadLine(); } else { Console.WriteLine("Bitte gültige Zahlen eingeben"); goto start; } } } }
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1