Все задачи
Легко Решено: 0 Процент решений: 0%

Оформление счёта

Выведите строки счёта и итог: суммы хранятся в центах, а показываются в долларах и центах.

Чему вы научитесь

  • Хранить деньги в целых центах
  • Записывать центы как доллары с двумя цифрами
  • Собирать строки отчёта и итог

Условие

Деньги обычно хранят в целых центах, чтобы избежать ошибок округления, и переводят в доллары только при выводе.

Для каждого товара выведите строку <name> x<quantity> = <amount>, где amount = quantity × цена в центах. После товаров выведите Total = <amount> с суммой всех строк.

Записывайте каждую сумму как доллары, точку и ровно две цифры центов, например 5 → 0.05 и 1250 → 12.50.

Реализуйте format_invoice(names, quantities, cents).

Входные данные

names, quantities, cents: Соответствующие друг другу списки с описанием товаров.

Выходные данные

Верните строки товаров, а за ними строку итога.

Ограничения

0 ≤ число товаров ≤ 1,000

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

Примеры

Пример 1
Ввод:
cents = [250, 375]
names = ["Tea", "Cake"]
quantities = [2, 1]

Ожидаемый вывод:
expected = ["Tea x2 = 5.00", "Cake x1 = 3.75", "Total = 8.75"]
Ввод:
std::vector<long long> cents = {250, 375};
std::vector<std::string> names = {"Tea", "Cake"};
std::vector<long long> quantities = {2, 1};

Ожидаемый вывод:
std::vector<std::string> expected = {"Tea x2 = 5.00", "Cake x1 = 3.75", "Total = 8.75"};
Ввод:
long[] cents = new long[] {250, 375};
string[] names = new string[] {"Tea", "Cake"};
long[] quantities = new long[] {2, 1};

Ожидаемый вывод:
string[] expected = new string[] {"Tea x2 = 5.00", "Cake x1 = 3.75", "Total = 8.75"};

Пояснение

2 × 250 = 500 центов — это 5.00, а 375 центов — 3.75; итого 875 центов: ["Tea x2 = 5.00", "Cake x1 = 3.75", "Total = 8.75"].

Пример 2
Ввод:
cents = [5]
names = ["Gum"]
quantities = [3]

Ожидаемый вывод:
expected = ["Gum x3 = 0.15", "Total = 0.15"]
Ввод:
std::vector<long long> cents = {5};
std::vector<std::string> names = {"Gum"};
std::vector<long long> quantities = {3};

Ожидаемый вывод:
std::vector<std::string> expected = {"Gum x3 = 0.15", "Total = 0.15"};
Ввод:
long[] cents = new long[] {5};
string[] names = new string[] {"Gum"};
long[] quantities = new long[] {3};

Ожидаемый вывод:
string[] expected = new string[] {"Gum x3 = 0.15", "Total = 0.15"};

Пояснение

3 × 5 = 15 центов, записывается как 0.15: ["Gum x3 = 0.15", "Total = 0.15"].

Как подступиться

Сначала попробуйте сами, затем открывайте подсказки по одной.

Подсказка 1

Ведите все вычисления в целых центах.

Подсказка 2

Разделите центы на доллары (cents / 100) и остаток (cents % 100).

Подсказка 3

Всегда пишите центы двумя цифрами: 5 центов — это 0.05.

Ожидаемая сложность

время O(число товаров), доп. память O(число товаров)

Ссылки

Это задание адаптировано для CodeUtility. Следуйте условию и ограничениям выше.

Учитесь у других

Решения сообщества

Пока нет опубликованных решений. Решите задание, чтобы поделиться первым.