首页 > 试题广场 >

独立的小易

[编程题]独立的小易
  • 热度指数:380 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
小易为了向他的父母表现他已经长大独立了,他决定搬出去自己居住一段时间。一个人生活增加了许多花费: 小易每天必须吃一个水果并且需要每天支付x元的房屋租金。当前小易手中已经有f个水果和d元钱,小易也能去商店购买一些水果,商店每个水果售卖p元。小易为了表现他独立生活的能力,希望能独立生活的时间越长越好,小易希望你来帮他计算一下他最多能独立生活多少天。

输入描述:
输入包括一行,四个整数x, f, d, p(1 ≤ x,f,d,p ≤ 2 * 10^9),以空格分割


输出描述:
输出一个整数, 表示小易最多能独立生活多少天。
示例1

输入

3 5 100 10

输出

11
x,f,d,p = map(int,input().split())
print(d//x if f > d/x else (d + f*p)//(x+p))

一共只有两种可能,一种是小易带了许多水果,此时居住时间仅受房租制约,另一种是居住时间受房租和水果钱双重制约。
判断之后,第一种情形居住天数 = 金钱/租金
第二种情况 居住天数 由方程确定
设工作天数为M
x*m + (m - f) *p <= d
m <= (d + f*p)/(x + p)
使用Python 三元表达式一步求解
发表于 2018-07-03 17:46:18 回复(0)
#include <iostream>
using namespace std;
int main()
{
    int x,f,d,p,y;
    cin>>x>>f>>d>>p;
    if(f>(d/x))
        cout<<(d/x)<<endl;
    else
    {
        y=f+(d-f*x)/(p+x);
        cout<<y<<endl;
    }
    system("pause");
    return 0;
}

发表于 2019-08-02 20:45:54 回复(0)
if((d-x*f)>=0){
            d=d+f*p;//此处一定要注意数组的溢出
           day=d/(x+p);
        }else{
            day=d/x;
        }
 
发表于 2018-08-11 00:11:42 回复(1)
b=input()
a=[int(i) for i in b.split()]
x=a[0]
f=a[1]
d=a[2]
p=a[3]
if f>=d/x:
    day=int(d/x)
else :
    day=f+int((d-x*f)/(p+x))
    
print(day)
 
发表于 2018-07-01 22:58:33 回复(0)