C# :: Aufgabe #276 :: Lösung #2
2 Lösungen
#276
Ägyptische Bruchrechnung
Fortgeschrittener - C#
von hollst
- 22.12.2019 um 22:50 Uhr
Gegeben seien zwei positive Ganzzahlen Z (wie Zaehler) und N (wie Nenner) mit N > Z
und Z sei kein Teiler von N.
Der Bruch Z/N ist immer als Summe der Kehrwerte positiver Ganzzahlen (Stammbrüche) darstellbar,
wobei es meist mehrer Möglichkeiten der Darstellung gibt.
Beispiele:
5/6 = 1/2 + 1/3 = 1/2 + 1/4 + 1/12 = 1/2 + 1/4 + 1/13 + 1/156 = ...
17/39 = 1/3 + 1/10 + 1/390 = ...
Man schreibe ein Programm, das Z und N entgegennimmt und die Zahlen der Stammbrüchesumme mit den wenigsten Summanden ausgibt.
Also obere Beispiele:
Input 5 und 6, Output 2 und 3,
Input 17 und 39, Output 3, 10 und 390.
Viel Spaß.
und Z sei kein Teiler von N.
Der Bruch Z/N ist immer als Summe der Kehrwerte positiver Ganzzahlen (Stammbrüche) darstellbar,
wobei es meist mehrer Möglichkeiten der Darstellung gibt.
Beispiele:
5/6 = 1/2 + 1/3 = 1/2 + 1/4 + 1/12 = 1/2 + 1/4 + 1/13 + 1/156 = ...
17/39 = 1/3 + 1/10 + 1/390 = ...
Man schreibe ein Programm, das Z und N entgegennimmt und die Zahlen der Stammbrüchesumme mit den wenigsten Summanden ausgibt.
Also obere Beispiele:
Input 5 und 6, Output 2 und 3,
Input 17 und 39, Output 3, 10 und 390.
Viel Spaß.
#2
von miami666 (300 Punkte)
- 19.02.2020 um 08:08 Uhr
C#-Code
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace aufg_276 { class Program { static void aegBruch(int z, int n) { if (z == 0 || n == 0) return; if (n % z == 0) { Console.WriteLine("1/" + n / z); return; } if (z % n == 0) { Console.WriteLine("kein echter Bruch"); return; } if (z > n) { Console.Write(z / n + " + "); aegBruch(z % n, n); return; } int n2 = n / z + 1; Console.Write("1/" + n + " + "); aegBruch(z * n2 - n, n * n2); } static void Main(string[] args) { Console.WriteLine("Zaehler eingeben:"); int zaehler=Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Nenner eingeben:"); int nenner= Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Aegyptischer Brueche von " + zaehler + "/" + nenner + " sind\n "); aegBruch(zaehler, nenner); Console.ReadKey(); } } }
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1