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
