最近宅在家里,一直在玩都市天际线,于是发现怎样控制人口文化教育构成是个问题。
问题A:
对于给定的人口数据N(2^31-1>N>9),求出应该建立多少个A(小学),B(中学),C(大学)才能满足给定的比例(人口文化教育构成)
已知A单个容量为:300
已知B单个容量为:1000
已知C单个容量为:4500
附条件A:
例:
输入:13520
输出:27,5,1
注意:只有读完小学才可以读中学,读完中学才可以读大学。
附代码:
#include <iostream>
#include <stdio.h>
#include <math.h>
int main()
{
int N,temp,a=0,b=0,c=0;
float A, B, C;
scanf_s("%d", &N);
temp = floor(N / 10);
for (a = 0; temp > a * 50; a++);
for (b = 0; temp * 3 > b * 1000; b++);
for (c = 0; temp > c * 4500; c++);
printf("%d,%d,%d", a,b,c);
return 0;
}
但是实际上这个是不符合游戏规律的,一个1w+人口的城市,要建20个以上的小学?预算也绝对不够,况且这还是一次建完,所以我们引入了下列条件:
附条件B:
建筑类型 | 建筑费用 | 维护费用 | 容量 |
---|---|---|---|
小学 | $10000 | $160/周 | 300人 |
中学 | $24000 | $560/周 | 1000人 |
大学 | $75000 | $1920/周 | 4500人 |
问题B:
对于给定的人口数据N(2^31-1>N>9),一定时间T(T>3周),求出在T时间内应该建立多少个A(小学),B(中学),C(大学)才能满足给定的比例且花费最少(人口文化教育构成)。
注:学生的课程周期为一周,且不计建筑时间。
未完待续…