雪人部落的储备粮分配问题:C++ 代码实现

雪人部落遇到了食物匮乏的季节,会拿出储备粮接济吃不饱饭的雪人家庭。现在雪人部落中有 n 个家庭,每个家庭有自己的储备粮数量。雪人部落会计算当前所有雪人家庭储备粮的平均值,然后额外提供一些粮食给予低于平均值的雪人家庭,使其粮食储量达到计算的平均值。请问雪人部落一共需要提供多少储备粮?

输入:

共两行。

第一行为一个整数 n (n <= 10^5),表示有 n 个雪人家庭。

第二行为 n 个整数,表示每个雪人家庭的储备粮数量。

输出:

一个数,表示雪人部落要额外提供的储备粮数量。

输入样例:

5
1 2 3 4 5

输出样例:

3

思路:

先算出总量,然后算出平均数,再计算出低于平均数的家庭需要补充的量,这些量的和就是答案。

C++ 代码:

#include <iostream>
using namespace std;

int main() {
    int n, total = 0;
    cin >> n;
    int *arr = new int[n];
    for (int i = 0; i < n; i++) {
        cin >> arr[i];
        total += arr[i];
    }
    double avg = (double)total / n;
    int extra = 0;
    for (int i = 0; i < n; i++) {
        if (arr[i] < avg) {
            extra += (int)(avg - arr[i]);
        }
    }
    cout << extra << endl;
    delete[] arr;
    return 0;
}
雪人部落的储备粮分配问题:C++ 代码实现

原文地址: https://www.cveoy.top/t/topic/oiXZ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录