【题目描述】
假设地球上的新生资源按恒定速度增长。照此测算,地球上现有资源加上新生资源可供x亿人生活a年,或供y亿人生活b年。为了能够实现可持续发展,避免资源枯竭,地球最多能够养活多少亿人?
【输入】
一行,包括四个正整数x,a,y,b,两个整数之间用单个空格隔开。x>y,a<b,ax<by,各整数均不大于10000。
【输出】
一个实数z,表示地球最多养活z亿人,舍入到小数点后两位。
【输入样例】
110 90 90 210
【输出样例】
75.00
【算法分析】
此题为牛吃牧草的变式题,利用做差法可以求出一年新生的资源量。利每亿人每年所需的资源量为1个单位:
①y亿人生活b年所需资源量为y*b=b年新生资源+现有资源。
②x亿人生活a年所需资源量为x*a=a年新生资源+现有资源。
① - ②即为新生资源,也为表示地球最多养活的人数。
【源代码】
#include<bits/stdc++.h>
using namespace std;
int main() {
double x, a, y, b, z;
cin >> x >> a >> y >> b;
z = (y * b - x * a) / (b - a);
printf("%.2lf",z);
return 0;
}
【知识点小结】
知识点一:“/”
功能与c++中的“/”
,两个int型进行运算时是取整,double型进行运算时是数学中的除法。