一辆大客车可以载客44人,一辆小客车可以载客24人,大客车每日租金1200元,小客车每日租金800元,请根据旅行团人数,算出最经济的租车方案,即大客车和小客车分别多少辆。
一辆大客车可以载客44人,一辆小客车可以载客24人,大客车每日租金1200元,小客车每日租金800元,请根据旅行团人数,算出最经济的租车方案,即大客车和小客车分别多少辆。
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
2条回答 默认 最新
kinghero123456 2024-11-13 13:19关注#include <stdio.h> #define MAX_PEOPLE 100 // 假设旅行团人数不会超过100人 #define BIG_BUS_CAPACITY 44 #define SMALL_BUS_CAPACITY 24 #define BIG_BUS_RENT 1200 #define SMALL_BUS_RENT 800 int main() { int people; printf("请输入旅行团人数: "); scanf("%d", &people); if (people <= 0 || people > MAX_PEOPLE) { printf("人数输入无效!\n"); return 1; } int minCost = MAX_PEOPLE * (BIG_BUS_RENT + SMALL_BUS_RENT); // 初始化为一个非常大的值 int bestBigBuses = 0, bestSmallBuses = 0; // 遍历所有可能的大客车数量 for (int bigBuses = 0; bigBuses * BIG_BUS_CAPACITY <= people; bigBuses++) { // 计算需要的小客车数量 int remainingPeople = people - bigBuses * BIG_BUS_CAPACITY; int smallBuses = (remainingPeople + SMALL_BUS_CAPACITY - 1) / SMALL_BUS_CAPACITY; // 向上取整 // 计算总租金 int cost = bigBuses * BIG_BUS_RENT + smallBuses * SMALL_BUS_RENT; // 如果找到更经济的方案,则更新最佳方案 if (cost < minCost) { minCost = cost; bestBigBuses = bigBuses; bestSmallBuses = smallBuses; } } printf("最经济的租车方案: 大客车 %d 辆, 小客车 %d 辆, 总租金 %d 元\n", bestBigBuses, bestSmallBuses, minCost); return 0; }解决 无用评论 打赏 举报