某学院有 m 个学生参加南湖春游,休息时喝汽水。南湖商家公告如下: 买 1 瓶汽水定价 1.40 元,喝 1 瓶汽水(瓶不带走) 1 元。
(2)为节约资源,规定 3 个空瓶可换回 1 瓶汽水,或 20 个空瓶可换回 7 瓶汽水。
(3) 为方便顾客, 可先借后还。例如借 1 瓶汽水,还 3 个空瓶:或借 7 瓶汽水,还 20 个空瓶。
问 m 个学生每人喝 1 瓶汽水(瓶不带走),至少需多少元?
#include <stdio.h>
int calculateCost(int students) {
int sum = 0;
int b = students; // 初始瓶数等于学生数
while (b >= 3) {
int newBottles = b / 3; // 3个空瓶换回1瓶汽水
sum+= newBottles; // 计算换回的汽水数量
b = b % 3 + newBottles; // 更新剩余的瓶数
}
while (b >= 20) {
int newBottles = b / 20 * 7; // 20个空瓶换回7瓶汽水
sum += newBottles; // 计算换回的汽水数量
b = b % 20 + newBottles; // 更新剩余的瓶数
}
sum += b; // 剩余的瓶数每个都要喝掉
return sum;
}
int main() {
int m;
printf("请输入学生人数:");
scanf("%d", &m);
int cost = calculateCost(m);
printf("m个学生每人喝1瓶汽水至少需要%d元。\n", cost);
return 0;
}