牛顿问题——牛吃草问题,地球人口承载力估计(c++)

问题 E: 4.牛吃草问题

题目描述
有一个牧场,牧场上的牧草每天都在匀速生长,这片牧场可供m头牛吃a天,或可供n头牛吃b天,那么这片牧场每天新生的草量可供几头牛吃1天?
输入
两行数据
每行数据包括牛的数量以及吃草的天数
输出
每天的新生的草量可供几头牛食用一天
样例输入
15 20
20 10
样例输出
s=10
提示
利用牛吃的草量,求这片牧场每天新生长的草量。
解题思路:假设一头牛一天吃一份草,题目要求求解一天草场能新长出几份草(容易跟动物下崽子混淆,一天长多少草是固定的,与原来有多少草无关,想明白这个问题就很简单了。)用天数多的乘上牛数减去天数少的乘上牛数,就得出了多与少天数相差那几天新长出的草量,再除以相差的天数即为答案。

#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
	int m,a,n,b;
	cin>>m>>a>>n>>b;
	if(a>b){
		cout<<"s="<<(m*a-n*b)/(a-b);
	}
	else{
		cout<<"s="<<(n*b-m*a)/(b-a);
	}
	return 0;
 } 

在这里插入图片描述
再看一道思路完全一样的题。

问题 G: 5.地球人口承载力估计

题目描述
假设地球上的新生资源按恒定速度增长。照此测算,地球上现有资源加上新生资源可供x亿人生活a年,或供y亿人生活b年。
为了能够实现可持续发展,避免资源枯竭,地球最多能够养活多少亿人?
输入
一行,包括四个正整数x,a,y,b,两个整数之间用单个空格隔开。x>y , a<b , ax < by, 各整数均不大于10,000.
输出
一个实数z,表示地球最多养活z亿人,舍入到小数点后两位、
样例输入
110 90 90 210
样例输出
75.00

#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
	float m,a,n,b;
	cin>>m>>a>>n>>b;
	if(a>b){
		printf("%.2f",(m*a-n*b)/(a-b)+0.005);//加0.005是为了四舍五入用
	}
	else{
		printf("%.2f",(n*b-m*a)/(b-a)+0.005);
	}
	return 0;
 } 

解题思路:地球最多养活的人就是不破坏初始值,只消耗新生资源量。同上一题一天新长出的草。
不同于上一题这道题不是整数问题,第一次没有考虑到要四舍五入的问题答案没有全过。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菜·肉多多·狗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值