Tous les défis
Facile 0 résolus 0 % de réussite

Mettre en forme une facture

Affichez les lignes d'une facture et le total, avec des montants stockés en cents et affichés en dollars et cents.

Ce que vous allez apprendre

  • Stocker l'argent en cents entiers
  • Écrire les cents en dollars avec deux chiffres
  • Construire les lignes d'un rapport et un total

Problème

L'argent est généralement stocké en cents entiers pour éviter les erreurs d'arrondi, et n'est mis en forme en dollars qu'à l'affichage.

Pour chaque article, écrivez la ligne <name> x<quantity> = <amount>, où amount = quantity × prix en cents. Après les articles, écrivez Total = <amount> avec la somme de toutes les lignes.

Écrivez chaque montant en dollars, un point et exactement deux chiffres de cents, par exemple 5 → 0.05 et 1250 → 12.50.

Implémentez format_invoice(names, quantities, cents).

Entrée

names, quantities, cents: Des listes correspondantes décrivant chaque article.

Sortie

Renvoyez les lignes des articles suivies de la ligne du total.

Contraintes

0 ≤ nombre d'articles ≤ 1,000

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

Exemples

Exemple 1
Entrée :
cents = [250, 375]
names = ["Tea", "Cake"]
quantities = [2, 1]

Sortie attendue :
expected = ["Tea x2 = 5.00", "Cake x1 = 3.75", "Total = 8.75"]
Entrée :
std::vector<long long> cents = {250, 375};
std::vector<std::string> names = {"Tea", "Cake"};
std::vector<long long> quantities = {2, 1};

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

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

Explication

2 × 250 = 500 cents font 5.00 et 375 cents font 3.75 ; le total est de 875 cents : ["Tea x2 = 5.00", "Cake x1 = 3.75", "Total = 8.75"].

Exemple 2
Entrée :
cents = [5]
names = ["Gum"]
quantities = [3]

Sortie attendue :
expected = ["Gum x3 = 0.15", "Total = 0.15"]
Entrée :
std::vector<long long> cents = {5};
std::vector<std::string> names = {"Gum"};
std::vector<long long> quantities = {3};

Sortie attendue :
std::vector<std::string> expected = {"Gum x3 = 0.15", "Total = 0.15"};
Entrée :
long[] cents = new long[] {5};
string[] names = new string[] {"Gum"};
long[] quantities = new long[] {3};

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

Explication

3 × 5 = 15 cents, qui s'écrit 0.15 : ["Gum x3 = 0.15", "Total = 0.15"].

Comment l'aborder

Essayez d'abord seul, puis ouvrez les indices un par un.

Indice 1

Faites tous les calculs en cents entiers.

Indice 2

Séparez les cents en dollars (cents / 100) et en reste (cents % 100).

Indice 3

Écrivez toujours les cents sur deux chiffres : 5 cents donne 0.05.

Complexité attendue

temps O(nombre d'articles), espace supplémentaire O(nombre d'articles)

Références

Ce défi a été adapté pour CodeUtility. Suivez l'énoncé et les contraintes ci-dessus.

Apprenez des autres

Solutions de la communauté

Aucune solution publiée pour l'instant. Résolvez ce défi pour partager la première.