【2063】牛吃牧草
【题目描述】
有一个牧场,牧场上的牧草每天都在匀速生长,这片牧场可供15头牛吃20天,或可供20头牛吃10天,那么,这片牧场每天新生的草量可供几头牛吃1天?
【输入】
(无)
【输出】
如题述,牛的数量。
【输入样例】
(无)
【输出样例】
(无)
【代码分析】
【程序代码】
#include <iostream>
using namespace std;int main() {// 设每头牛每天吃草量为 E,初始草量 S,每天生长量 G// 情况1: 15头牛吃20天// 15 * 20 * E = S + 20 * G => 300E = S + 20G (1)// 情况2: 20头牛吃10天 // 20 * 10 * E = S + 10 * G => 200E = S + 10G (2)// 用方程(1)减去方程(2):// (300E - 200E) = (S + 20G) - (S + 10G)// 100E = 10G// 因此: G = 10E// 这意味着每天生长的草量 G 相当于10头牛一天的吃草量// 在代码中体现这个计算过程:int cows1 = 15, days1 = 20; // 第一组数据int cows2 = 20, days2 = 10; // 第二组数据// 计算总吃草量的差值系数int totalEatDiff = cows1 * days1 - cows2 * days2; // 300 - 200 = 100int growthDaysDiff = days1 - days2; // 20 - 10 = 10// G = (totalEatDiff / growthDaysDiff) * E// 这里 totalEatDiff / growthDaysDiff = 100 / 10 = 10// 所以每天生长草量可供 10 头牛吃一天int result = totalEatDiff / growthDaysDiff;cout << "计算过程:" << endl;cout << "第一组: " << cows1 << "头牛" << days1 << "天 => 总消耗: " << cows1 * days1 << "E" << endl;cout << "第二组: " << cows2 << "头牛" << days2 << "天 => 总消耗: " << cows2 * days2 << "E" << endl;cout << "总消耗差值: " << totalEatDiff << "E" << endl;cout << "生长天数差值: " << growthDaysDiff << "天" << endl;cout << "每天生长草量可供牛数 = " << totalEatDiff << "E / " << growthDaysDiff << "天 = " << result << "头牛" << endl;cout << "答案: " << result << endl;return 0;
}