瑞瑞有点冷 2024-05-01 21:35 采纳率: 0%
浏览 312

任务210:【入门】门票的定价 门票的定价

求解答,c++。


【入门】门票的定价
目标

某剧院举办文艺演出,经过调研发现,如果票价定为每张30元,那么1200张门票可以全部售出;如果票价每增加1元,那么售出的门票就减少n张(n<=100)。现要求门票价格在不低于30元的情况下,请问门票价格定为多少钱,可以使得总门票收入最高,最高总门票收入是多少元?(如果在多个价格下,门票总收入一样高,就取价格较低的门票单价)(9.1)

输入描述

一个整数n

输出描述

两个整数,用空格隔开,代表门票最终的定价以及总门票收入

示例
输入:
20
输出:
45 40500
限制
1.00秒
时间限制
16.00MB
内存限制

  • 写回答

5条回答 默认 最新

  • 专家-皆知 2024-05-01 21:35
    关注

    参考免费微信小程序:皆我百晓生 作答,经由专家-皆知整理回复,如问题解决,望采纳;如仍有疑问,请评论回复。

    要解决这个问题,我们可以定义一个函数来计算给定票价时的总收入。然后,我们将在30到(30 + n)(包括30和(30 + n))之间遍历所有可能的票价,找出总收入最高的那个。由于题目要求取价格较低的那个,我们需要在找到新的更高收入时更新我们的答案。

    以下是C++代码实现:

    #include <iostream>
    using namespace std;
    
    int main() {
        int n;
        cin >> n; // 输入n值
    
        int current_price = 30; // 初始票价
        int max_income = 0; // 最大收入
        int optimal_price = 30; // 最优票价
    
        for (int price = 30; price <= 30 + n; ++price) {
            int tickets_sold = 1200 - (price - 30) * n; // 根据票价计算售出的票数
            int income = price * tickets_sold; // 计算总收入
    
            if (income > max_income) { // 如果当前收入高于最大收入
                max_income = income; // 更新最大收入
                optimal_price = price; // 更新最优票价
            }
        }
    
        cout << optimal_price << " " << max_income << endl; // 输出最优票价和最大收入
    
        return 0;
    }
    

    这段代码首先读入整数n,然后从初始票价30开始,每次增加1元,直到达到30+n。对于每个票价,它都会计算售出的票数(1200减去票价增加部分乘以n),然后计算总收入(票价乘以票数)。如果这个总收入大于之前的最大收入,就更新最大收入和最优票价。最后,程序会输出最优票价和最大收入。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 5月1日