算法小白——简单规划

最近宅在家里,一直在玩都市天际线,于是发现怎样控制人口文化教育构成是个问题。

问题A:

对于给定的人口数据N(2^31-1>N>9),求出应该建立多少个A(小学),B(中学),C(大学)才能满足给定的比例(人口文化教育构成)
已知A单个容量为:300
已知B单个容量为:1000
已知C单个容量为:4500

附条件A:

Mon 06 未受教育40% 小学教育30% 中学教育20% 大学教育10% 受教育程度 人口文化教育构成

例:

输入: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(大学)才能满足给定的比例且花费最少(人口文化教育构成)。
注:学生的课程周期为一周,且不计建筑时间。

未完待续…

发布了11 篇原创文章 · 获赞 8 · 访问量 3271

猜你喜欢

转载自blog.csdn.net/weixin_44076906/article/details/104233109