50字范文,内容丰富有趣,生活中的好帮手!
50字范文 > 信息学奥赛一本通 1005:地球人口承载力估计| OpenJudge NOI 小学奥数 7653

信息学奥赛一本通 1005:地球人口承载力估计| OpenJudge NOI 小学奥数 7653

时间:2022-10-24 05:15:49

相关推荐

信息学奥赛一本通 1005:地球人口承载力估计| OpenJudge NOI 小学奥数 7653

【题目链接】

ybt 1005:地球人口承载力估计

OpenJudge NOI 小学奥数 7653:地球人口承载力估计

【题目考点】

保留x位小数输出浮点型数字a的写法:

cout<<fixed<<setprecision(x)<<a;

printf("%.xf", a);声明浮点型变量,单精度浮点型float,双精度浮点型double输入输出浮点型变量本题考查列方程及解方程

【解题思路】

已知地球上现有资源加上新生资源可供xxx亿人生活aaa年,或供yyy亿人生活bbb年,地球最多养活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 地球最多能养活的人口数即为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;}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。