测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A17147. 根据地粮食分配

填空题 中等

题目描述

根据地粮食分配

题目描述

N 个村庄,共 M 斤粮食。分配规则:

每村先分 100 斤基础口粮;

剩余粮食按人口均分(整数);

不足则只发基础口粮。

输入格式

第一行:N M

第二行:N 个整数(各村人口)

输出格式

一行 N 个整数,空格分隔。

参考答案

#include <iostream> using namespace std; int main() { int N, M; cin >> N >> M; int people[105]; int sum_people = 0; for (int i = 0; i > people[i]; sum_people += people[i]; } int base = N * 100; int rest = M - base; int add = 0; if (rest > 0 && sum_people > 0) { add = rest / sum_people; } for (int i = 0; i < N; i++) { cout << 100 + people[i] * add << " "; } cout << endl; return 0; }

答案解析

读取村庄数量N和总粮食量M;读取N个村庄的人口数据。计算基础口粮总量,每个村庄先分配100斤,共消耗N*100斤。判断剩余粮食是否足够进行按人口分配:若M < N*100,则只能发放基础口粮,后续不再分配;否则计算剩余可分配粮食 = M - N*100。统计总人口,按各村人口占总人口比例整数分配剩余粮食,分配时取整数部分,不四舍五入。每个村庄最终获得的粮食为基础口粮加上按人口分得的整数部分粮食。输出每个村庄实际分配到的粮食数量,以空格分隔。

上一题 下一题