信息学奥赛一本通 1005:地球人口承载力估计| OpenJudge NOI 小学奥数 7653
【題目鏈接】
ybt 1005:地球人口承載力估計
OpenJudge NOI 小學奧數(shù) 7653:地球人口承載力估計
【題目考點】
cout<<fixed<<setprecision(x)<<a;
printf("%.xf", a);
【解題思路】
已知地球上現(xiàn)有資源加上新生資源可供xxx億人生活aaa年,或供yyy億人生活bbb年,地球最多養(yǎng)活zzz億人。
設地球每年新生資源為nnn,已有資源為mmm,1億人每年消耗資源ppp。
則有方程組:
x?p?a=m+a?ny?p?b=m+b?nx*p*a = m + a*n\\ y*p*b = m + b*nx?p?a=m+a?ny?p?b=m+b?n
使資源不枯竭,每年消耗的資源必須小于等于再生的資源,有
z?p<=nz*p <= nz?p<=n
即z<=n/pz <= n/pz<=n/p 地球最多能養(yǎng)活的人口數(shù)即為n/pn/pn/p
方程組兩邊除以p,得:
x?a=m/p+a?n/py?b=m/p+b?n/px*a = m/p + a*n/p\\ y*b = m/p + b*n/px?a=m/p+a?n/py?b=m/p+b?n/p
兩方程相減,得:
x?a?y?b=(a?b)n/pn/p=(x?a?y?b)/(a?b)x*a - y*b = (a-b)n/p\\ n/p = (x*a - y*b)/(a-b)x?a?y?b=(a?b)n/pn/p=(x?a?y?b)/(a?b)
【題解代碼】
解法1:使用cin, cout進行輸入輸出
#include <bits/stdc++.h> using namespace std; int main() {double x,y,a,b;cin>>x>>a>>y>>b;cout<<fixed<<setprecision(2)<<(x*a - y*b)/(a-b); return 0; }解法2:使用scanf, printf進行輸入輸出
#include <bits/stdc++.h> using namespace std; int main() {double x,y,a,b;scanf("%lf %lf %lf %lf", &x, &a, &y, &b);printf("%.2f", (x*a - y*b)/(a-b)); return 0; }總結(jié)
以上是生活随笔為你收集整理的信息学奥赛一本通 1005:地球人口承载力估计| OpenJudge NOI 小学奥数 7653的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 信息学奥赛一本通(1065:奇数求和)
- 下一篇: 信息学奥赛一本通 1092:求出e的值