Problem
Geld wird meist als ganze Cent gespeichert, um Rundungsfehler zu vermeiden, und erst bei der Anzeige als Dollar formatiert.
Schreibe für jeden Artikel die Zeile <name> x<quantity> = <amount>, wobei amount = quantity × Preis in Cent ist. Schreibe nach den Artikeln Total = <amount> mit der Summe aller Zeilen.
Formatiere jeden Betrag als Dollar, einen Punkt und genau zwei Ziffern Cent, zum Beispiel 5 → 0.05 und 1250 → 12.50.
Implementiere format_invoice(names, quantities, cents).
Eingabe
names, quantities, cents: Zueinander passende Listen, die jeden Artikel beschreiben.
Ausgabe
Gib die Artikelzeilen gefolgt von der Summenzeile zurück.
Einschränkungen
0 ≤ Anzahl der Artikel ≤ 1,000
1 ≤ quantity ≤ 1,000; 0 ≤ cents ≤ 10^6
Beispiele
Eingabe:
cents = [250, 375]
names = ["Tea", "Cake"]
quantities = [2, 1]
Erwartete Ausgabe:
expected = ["Tea x2 = 5.00", "Cake x1 = 3.75", "Total = 8.75"]
Eingabe:
std::vector<long long> cents = {250, 375};
std::vector<std::string> names = {"Tea", "Cake"};
std::vector<long long> quantities = {2, 1};
Erwartete Ausgabe:
std::vector<std::string> expected = {"Tea x2 = 5.00", "Cake x1 = 3.75", "Total = 8.75"};
Eingabe:
long[] cents = new long[] {250, 375};
string[] names = new string[] {"Tea", "Cake"};
long[] quantities = new long[] {2, 1};
Erwartete Ausgabe:
string[] expected = new string[] {"Tea x2 = 5.00", "Cake x1 = 3.75", "Total = 8.75"};
Erläuterung
2 × 250 = 500 Cent sind 5.00 und 375 Cent sind 3.75; die Summe ist 875 Cent: ["Tea x2 = 5.00", "Cake x1 = 3.75", "Total = 8.75"].
Eingabe:
cents = [5]
names = ["Gum"]
quantities = [3]
Erwartete Ausgabe:
expected = ["Gum x3 = 0.15", "Total = 0.15"]
Eingabe:
std::vector<long long> cents = {5};
std::vector<std::string> names = {"Gum"};
std::vector<long long> quantities = {3};
Erwartete Ausgabe:
std::vector<std::string> expected = {"Gum x3 = 0.15", "Total = 0.15"};
Eingabe:
long[] cents = new long[] {5};
string[] names = new string[] {"Gum"};
long[] quantities = new long[] {3};
Erwartete Ausgabe:
string[] expected = new string[] {"Gum x3 = 0.15", "Total = 0.15"};
Erläuterung
3 × 5 = 15 Cent, geschrieben als 0.15: ["Gum x3 = 0.15", "Total = 0.15"].
So gehst du vor
Versuch es zuerst allein und öffne dann einen Hinweis nach dem anderen.
Hinweis 1
Rechne durchgehend mit ganzen Cent.
Hinweis 2
Teile Cent in Dollar (cents / 100) und den Rest (cents % 100).
Hinweis 3
Gib die Cent immer zweistellig aus, also 5 Cent als 0.05.
Erwartete Komplexität
Zeit O(Anzahl der Artikel), zusätzlicher Speicher O(Anzahl der Artikel)
Referenzen
Diese Aufgabe wurde für CodeUtility angepasst. Beachte die oben genannten Vorgaben und Einschränkungen.