# Array# Input/Output# String

f147 - 1. 點餐系統 (Ordering System)

🔗 前往 ZeroJudge 原題

題目描述

題目要求模擬一個點餐系統。使用者輸入點餐編號,系統輸出對應的餐點名稱,並計算總價。輸入 0 時結束點餐,最後輸出總價。

解題思路

題目主要考驗對陣列的應用以及輸入輸出的處理。程式碼中定義了兩個字串陣列 ab 分別儲存主餐和配餐的名稱,以及兩個整數陣列 aabb 儲存對應的價格。程式讀取使用者輸入的點餐編號 n,根據 n 的值判斷是主餐還是配餐,輸出餐點名稱並更新總價 total。當輸入為 0 時,程式結束點餐並輸出總價。

複雜度分析

  • 時間複雜度: O(n),其中 n 是點餐次數。
  • 空間複雜度: O(1),因為使用的陣列大小固定,不隨輸入規模變化。

程式碼

#include <iostream>
using namespace std;
string a[5]={"Medium Wac 4","WChicken Nugget 8","Geez Burger 7","ButtMilk Crispy Chicken 6","Plastic Toy 3"};
string b[4]={"German Fries 2","Durian Slices 3","WcFurry 5","Chocolate Sunday 7"};
int aa[5]={4,8,7,6,3},bb[4]={2,3,5,7},total=0,n;
int main(){
	cin.tie(0); ios::sync_with_stdio(false);
	while(cin >> n){
		if(n==0)break;
		else if(n==1){
			cin >> n;
			cout << a[n-1];
			total+=aa[n-1];
		}
		else{
			cin >> n;
			cout << b[n-1];
			total+=bb[n-1];
		}
		cout << "\n"; 
	}
	cout << "Total: " << total;
}

Discussion