[c++] [1003] 地球人口承载力估计

该编程代码是解决一个数学问题,通过给定资源分配情况(x亿人生活a年或y亿人生活b年),计算在恒定资源增长速度下地球最多能养活的人口数,保留两位小数。

描述

假设地球上的新生资源按恒定速度增长。照此测算,地球上现有资源加上新生资源可供x亿人生活a年,或供y亿人生活b年。 为了能够实现可持续发展,避免资源枯竭,地球最多能够养活多少亿人?

输入 

一行,包括四个正整数x,a,y,b,两个整数之间用单个空格隔开

输出 

一个实数,表示地球最多养活几亿人,保留两位小数。

#include <iostream>
#include <iomanip>
using namespace std;
int main(){
  int x,a,y,b; //x亿人生活a年或y亿人生活b年
   /*
  double c; //可持续发展最多供养c亿人
  设地球现有总资源now,每年新增资源up,每年每亿人消耗资源down
  要维持可持续发展,避免资源枯竭,每年新增资源=每年消耗资源
  now+up*a=down*a*x;
  now+up*b=down*b*y;
  两式相减,up*(a-b)=down(a*x-b*y)
  即up/down = (a*x-b*y)/(a-b)
  up=c*down;
  c=up/down=(a*x-b*y)/(a-b);
  可持续发展,每年新增的资源up = 每年消耗的资源c*down
  */
  cin>>x>>a>>y>>b;
  cout<<fixed<<setprecision(2)<<(double)(a*x-b*y)/(a-b)<<endl;
  return 0;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值