题解
计算买水果的总价钱
1 条题解
-
0
解题思路
水果摊上有 4 种水果,单价分别是:苹果 5 元/斤、梨 4 元/斤、西瓜 3 元/斤、柑橘 7 元/斤。每种水果买的斤数不一样,我们要算一共要付多少钱。
总价钱 = 每种水果(斤数 × 单价)加起来。
做法:
- 先把 4 种水果的单价按编号顺序存进数组
m[1]~m[4],这样m[1]是苹果、m[2]是梨、m[3]是西瓜、m[4]是柑橘的单价。 - 读入苹果、梨、西瓜、柑橘各买了多少斤,也就是 a、b、c、d。
- 总价钱 =
a * m[1] + b * m[2] + c * m[3] + d * m[4],输出这个和。
用样例验证:苹果 5 斤、梨 0 斤、西瓜 12 斤、柑橘 2 斤,总价 = 5×5 + 0×4 + 12×3 + 2×7 = 25 + 0 + 36 + 14 = 75,和样例一致。
参考代码
// P4499 计算买水果的总价钱:苹果5元/斤、梨4元/斤、西瓜3元/斤、柑橘7元/斤,按购买斤数求总价钱 #include <iostream> using namespace std; int m[5]; // m[i] 存第 i 种水果的单价 int main() { // 先把每种水果的单价保存到数组 m 中(下标1~4) m[1] = 5; // 1号水果:苹果 5元/斤 m[2] = 4; // 2号水果:梨 4元/斤 m[3] = 3; // 3号水果:西瓜 3元/斤 m[4] = 7; // 4号水果:柑橘 7元/斤 int a, b, c, d; // 读入苹果、梨、西瓜、柑橘的购买斤数 cin >> a >> b >> c >> d; // 总价钱 = 每种水果 斤数 × 单价 的和 int sum = a * m[1] + b * m[2] + c * m[3] + d * m[4]; cout << sum << '\n'; // 输出要支付的总价钱 return 0; }复杂度分析
- 读入 4 个斤数,做 4 次乘法和 3 次加法,都是常数次操作:O(1)。
- 数组大小固定为 5,空间也是常数。
总时间复杂度 O(1),空间复杂度 O(1)。
- 先把 4 种水果的单价按编号顺序存进数组
- 1