簡単 0件解決済み 正答率0%

請求書の整形

金額をセント単位で保持し、ドルとセントの形式で表示して、請求書の各行と合計を出力します。

このチャレンジで学べること

  • 金額を整数のセントで持つ
  • セントを 2 桁のドル表記にする
  • 明細行と合計行を作る

問題

原文(英語)を表示

お金は通常、丸め誤差を避けるためにセント単位の整数で保存され、表示するときだけドル表記に整形されます。

各項目について、<name> x<quantity> = <amount> という行を書きます。ここで amount = quantity × price in cents です。項目の後には、すべての行の合計である Total = <amount> を書きます。

すべての金額を、ドル、小数点、そしてちょうど 2 桁のセントとして整形してください。たとえば 5 → 0.05、1250 → 12.50 です。

format_invoice(names, quantities, cents) を実装してください。

Input

names, quantities, cents: 各項目を表す対応するリスト。

Output

項目行の後に合計行を続けたものを返してください。

制約

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 つずつ開いてみましょう。

ヒント 1

計算はすべて整数のセントで行います。

ヒント 2

セントをドル(cents / 100)と余り(cents % 100)に分けます。

ヒント 3

セントは常に 2 桁で書くので、5 セントは 0.05 です。

目安の計算量

時間 O(商品の数)、追加メモリ O(商品の数)

参考資料

この課題はCodeUtility用に調整されています。上記の説明と制約に従ってください。

他の人の解答から学ぶ

コミュニティの解答

まだ公開された解答がありません。この課題を解いて最初の解答を共有しましょう。