【算法百题之十八】小易买水果
大家好,我是Lampard~~
很高兴又能和大家见面了,接下来准备系列更新的是算法题,一日一练,早日升仙!
今天的问题是:
小易为了向他的父母表现他已经长大独立了,他决定搬出去自己居住一段时间。一个人生活增加了许多花费: 小易每天必须吃一个水果并且需要每天支付x元的房屋租金。
当前小易手中已经有f个水果和d元钱,小易也能去商店购买一些水果,商店每个水果售卖p元。小易为了表现他独立生活的能力,希望能独立生活的时间越长越好,小易希望你来帮他计算一下他最多能独立生活多少天。
要求:
输入:输入包括一行,四个整数x(日租金), f(现有的水果), d(剩下的钱), p(水果的单价)(1 ≤ x,f,d,p ≤ 2 * 10^9),以空格分割
输出:小易生活的天数
思路:
题目很简单,只要分类讨论两种情况,就是需不需要再买水果
#include <iostream>
using namespace std;
// 输入包括一行,四个整数x(日租金), f(现有的水果), d(剩下的钱), p(水果的单价)(1 ≤ x,f,d,p ≤ 2 * 10^9),以空格分割
// 考虑两种情况,一种是需要买水果,一种是不需要买水果
int main()
{
int x, f, d, p;
cout << "请依次输入日租金,现有水果数,剩下的钱,水果的单价:" << endl;
cin >> x;
cin >> f;
cin >> d;
cin >> p;
if (d / x <= f)
{
// 不需要买水果的情况
cout<< d / x;
}
else
{
int money = f * x;
cout<< (d - money) / (p + x) +f;
}
}
结果:
测试用例:3 5 100 10
答案:11