Problema
El dinero suele guardarse como centavos enteros para evitar errores de redondeo, y solo se formatea en dólares al mostrarlo.
Para cada artículo, escribe la línea <name> x<quantity> = <amount>, donde amount = quantity × precio en centavos. Después de los artículos, escribe Total = <amount> con la suma de todas las líneas.
Escribe cada importe en dólares, un punto y exactamente dos dígitos de centavos, por ejemplo 5 → 0.05 y 1250 → 12.50.
Implementa format_invoice(names, quantities, cents).
Entrada
names, quantities, cents: Listas correspondientes que describen cada artículo.
Salida
Devuelve las líneas de los artículos seguidas de la línea del total.
Restricciones
0 ≤ número de artículos ≤ 1,000
1 ≤ quantity ≤ 1,000; 0 ≤ cents ≤ 10^6
Ejemplos
Entrada:
cents = [250, 375]
names = ["Tea", "Cake"]
quantities = [2, 1]
Salida esperada:
expected = ["Tea x2 = 5.00", "Cake x1 = 3.75", "Total = 8.75"]
Entrada:
std::vector<long long> cents = {250, 375};
std::vector<std::string> names = {"Tea", "Cake"};
std::vector<long long> quantities = {2, 1};
Salida esperada:
std::vector<std::string> expected = {"Tea x2 = 5.00", "Cake x1 = 3.75", "Total = 8.75"};
Entrada:
long[] cents = new long[] {250, 375};
string[] names = new string[] {"Tea", "Cake"};
long[] quantities = new long[] {2, 1};
Salida esperada:
string[] expected = new string[] {"Tea x2 = 5.00", "Cake x1 = 3.75", "Total = 8.75"};
Explicación
2 × 250 = 500 centavos son 5.00 y 375 centavos son 3.75; el total es 875 centavos: ["Tea x2 = 5.00", "Cake x1 = 3.75", "Total = 8.75"].
Entrada:
cents = [5]
names = ["Gum"]
quantities = [3]
Salida esperada:
expected = ["Gum x3 = 0.15", "Total = 0.15"]
Entrada:
std::vector<long long> cents = {5};
std::vector<std::string> names = {"Gum"};
std::vector<long long> quantities = {3};
Salida esperada:
std::vector<std::string> expected = {"Gum x3 = 0.15", "Total = 0.15"};
Entrada:
long[] cents = new long[] {5};
string[] names = new string[] {"Gum"};
long[] quantities = new long[] {3};
Salida esperada:
string[] expected = new string[] {"Gum x3 = 0.15", "Total = 0.15"};
Explicación
3 × 5 = 15 centavos, que se escribe 0.15: ["Gum x3 = 0.15", "Total = 0.15"].
Cómo abordarlo
Inténtalo primero por tu cuenta y luego abre las pistas una a una.
Pista 1
Haz toda la aritmética en centavos enteros.
Pista 2
Separa los centavos en dólares (cents / 100) y el resto (cents % 100).
Pista 3
Escribe siempre los centavos con dos dígitos: 5 centavos es 0.05.
Complejidad esperada
tiempo O(número de artículos), espacio extra O(número de artículos)
Referencias
Este reto está adaptado para CodeUtility. Sigue el enunciado y las restricciones indicadas arriba.