数学好的朋友们应该都知道,这是一道数学题,绝对不是什么算法题,我们看原题:
假设地球上的新生资源按恒定速度增长。照此测算,地球上现有资源加上新生资源可供𝑥亿人生活𝑎年,或供𝑦亿人生活𝑏年。
为了能够实现可持续发展,避免资源枯竭,地球最多能够养活多少亿人?
用字母表示答案是这样的:
(b*y-a*x)/(b-a)
当你信心满满地交代吗,你会发现——珂,居然AC不了!
答案是:我们的a,b,x,y可都是int类型啊,答案是double!
咋办?其实啊,我们只要在每一次运算中*1.0即可,就这样:
(b*y-a*x)*1.0/(1.0*(b-a))
好的,现在就AC了,懂得输入输出的朋友们估计不需要代码吧,额算了可能你连类型都不知道是什么(甚至连c++都没学过),那我还是放个弱智代码吧,免得你动手:
#include <cstdio>
using namespace std;
int x,a,b,y;
int main(){
scanf("%d%d%d%d",&x,&a,&y,&b);
printf("%.2lf",(b*y-a*x)*1.0/(1.0*(b-a)));
return 0;
}