返回列表 發帖

202411新手2-年貨大街 (Market)

問題敘述
每到春節前,迪化街年貨大街各式堅果、糖果、乾貨琳瑯滿目,總能吸引大量的人潮。涵涵每年都會去辦年貨,年貨通常是秤重計價的,有時候他會不小心買了太多導致荷包大失血。 請你寫一個程式幫他計算價格。
輸入格式
第一列包含一個正整數N,表示有幾款商品 (1 <= N <= 100)。
第二列包含N個正整數Pi,依序表示商品 i 的每公克價格 (1<= Pi <= 100)。 接著輸入多列,每列包含兩個正整數X (1 <= X <= N) 和G (1 <= G <= 100),表示購買 G公克的商品 X。當 X 和 G 皆為0時表示輸入結束。 同一列的兩個整數間以空白間隔。
輸出格式
輸出一個整數,代表購買所有商品的總金額。

評分說明
此題目測資分為兩組,每組測資有多筆測試資料,需答對該組所有測資才能獲得該組分數,各組詳細限制如下。
附件: 您需要登錄才可以下載或查看附件。沒有帳號?註冊
May

  1. //#include <iostream>
  2. //#include <vector>
  3. #include <bits/stdc++.h>
  4. using namespace std;

  5. int main() {
  6.     int N;
  7.     cin >> N; // 輸入商品數量

  8.     vector<int> prices(N + 1); // 商品價格陣列,使用 N+1 讓商品編號從 1 開始
  9.     for (int i = 1; i <= N; i++) {
  10.         cin >> prices[i]; // 輸入每公克的價格
  11.     }

  12.     int totalCost = 0; // 總金額初始化為 0
  13.     while (true) {
  14.         int X, G;
  15.         cin >> X >> G; // 輸入商品編號和購買重量

  16.         if (X == 0 && G == 0) {
  17.             break; // 當 X 和 G 都為 0 時結束輸入
  18.         }

  19.         totalCost += prices[X] * G; // 計算總金額
  20.     }

  21.     cout << totalCost << endl; // 輸出總金額

  22.     return 0;
  23. }
複製代碼
解釋
輸入商品數量與價格:

第一行輸入 N 表示商品的種類數量。
第二行輸入每種商品每公克的價格,儲存到 prices 陣列中。
處理購買資料:

讀取購買的資料 (商品編號 X 和購買重量 G)。
如果 X 和 G 都為 0,表示輸入結束,跳出迴圈。
否則將對應商品的價格乘以購買重量,累加到 totalCost。
輸出結果:

輸出累計的總金額。
測試案例
輸入範例 1
複製程式碼
3
3 4 5
1 2
1 1
0 0
輸出範例 1
複製程式碼
9
輸入範例 2
複製程式碼
5
10 15 8 7 3
1 20
3 5
0 0
輸出範例 2
複製程式碼
240
注意事項
prices 陣列從索引 1 開始,以便直接使用商品編號作為索引。
程式會根據輸入動態計算每種商品的總價格,因此適合處理多筆商品與購買紀錄。
May

TOP

返回列表