Tutte le sfide
Facile 0 risolte 0% di accettazione

Formattare una fattura

Stampa le righe di una fattura e il totale, con importi salvati in centesimi e mostrati in dollari e centesimi.

Cosa imparerai

  • Salvare il denaro in centesimi interi
  • Scrivere i centesimi come dollari con due cifre
  • Costruire righe di report e un totale

Problema

Il denaro di solito si salva in centesimi interi per evitare errori di arrotondamento, e si formatta in dollari solo quando viene mostrato.

Per ogni articolo scrivi la riga <name> x<quantity> = <amount>, dove amount = quantity × prezzo in centesimi. Dopo gli articoli scrivi Total = <amount> con la somma di tutte le righe.

Scrivi ogni importo in dollari, un punto ed esattamente due cifre di centesimi, per esempio 5 → 0.05 e 1250 → 12.50.

Implementa format_invoice(names, quantities, cents).

Input

names, quantities, cents: Liste corrispondenti che descrivono ogni articolo.

Output

Restituisci le righe degli articoli seguite dalla riga del totale.

Vincoli

0 ≤ numero di articoli ≤ 1,000

1 ≤ quantity ≤ 1,000; 0 ≤ cents ≤ 10^6

Esempi

Esempio 1
Input:
cents = [250, 375]
names = ["Tea", "Cake"]
quantities = [2, 1]

Output atteso:
expected = ["Tea x2 = 5.00", "Cake x1 = 3.75", "Total = 8.75"]
Input:
std::vector<long long> cents = {250, 375};
std::vector<std::string> names = {"Tea", "Cake"};
std::vector<long long> quantities = {2, 1};

Output atteso:
std::vector<std::string> expected = {"Tea x2 = 5.00", "Cake x1 = 3.75", "Total = 8.75"};
Input:
long[] cents = new long[] {250, 375};
string[] names = new string[] {"Tea", "Cake"};
long[] quantities = new long[] {2, 1};

Output atteso:
string[] expected = new string[] {"Tea x2 = 5.00", "Cake x1 = 3.75", "Total = 8.75"};

Spiegazione

2 × 250 = 500 centesimi sono 5.00 e 375 centesimi sono 3.75; il totale è 875 centesimi: ["Tea x2 = 5.00", "Cake x1 = 3.75", "Total = 8.75"].

Esempio 2
Input:
cents = [5]
names = ["Gum"]
quantities = [3]

Output atteso:
expected = ["Gum x3 = 0.15", "Total = 0.15"]
Input:
std::vector<long long> cents = {5};
std::vector<std::string> names = {"Gum"};
std::vector<long long> quantities = {3};

Output atteso:
std::vector<std::string> expected = {"Gum x3 = 0.15", "Total = 0.15"};
Input:
long[] cents = new long[] {5};
string[] names = new string[] {"Gum"};
long[] quantities = new long[] {3};

Output atteso:
string[] expected = new string[] {"Gum x3 = 0.15", "Total = 0.15"};

Spiegazione

3 × 5 = 15 centesimi, che si scrive 0.15: ["Gum x3 = 0.15", "Total = 0.15"].

Come affrontarlo

Prova prima da solo, poi apri un suggerimento alla volta.

Suggerimento 1

Fai tutti i calcoli in centesimi interi.

Suggerimento 2

Dividi i centesimi in dollari (cents / 100) e resto (cents % 100).

Suggerimento 3

Scrivi sempre i centesimi con due cifre: 5 centesimi diventano 0.05.

Complessità attesa

tempo O(numero di articoli), spazio aggiuntivo O(numero di articoli)

Riferimenti

Questa sfida è adattata per CodeUtility. Segui la traccia e i vincoli sopra.

Impara dagli altri

Soluzioni della community

Nessuna soluzione pubblicata. Risolvi questa sfida per condividere la prima.