首页 > 试题广场 >

独立的牛牛

[编程题]独立的牛牛
  • 热度指数:748 时间限制: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
import java.util.*;
public class Main{
    public static void main(String args[]){
        Scanner in = new Scanner(System.in);
        int x = in.nextInt();
        int f = in.nextInt();
        int d = in.nextInt();
        int p = in.nextInt();
        int res = d >= x*f? f+(d-x*f)/(x+p) : d/x;
        System.out.print(res);
    }
}

发表于 2021-09-10 16:27:31 回复(0)

数学题,刚开始的天每天只要付房租,后面就要付房租和水果钱

需要注意一下的情况。

#include 
using namespace std;
long long x, f, d, p;
int main() {
    scanf("%lld%lld%lld%lld", &x, &f, &d, &p);
    if(f*x > d) {
        printf("%d", d / x);
        return 0;
    }
    long long day = f + (d - f*x)/(x + p);
    printf("%lld", day);
    return 0;
}
发表于 2023-02-07 15:10:29 回复(0)
#include <iostream>
using namespace std;
int main(){
    long long x,f,d,p;
    while(cin >> x >> f >> d >> p){
        //int t = f + (d - 3 * f) / (x + p);
        long long t;
        if(f * x > d){
            t = d / x ;
            
        }
        else if(d >= f * x){
            t = f + (d - x * f) / (x + p);
            
        }
        cout << t;
    }
    return 0;
}

发表于 2019-07-24 19:30:34 回复(0)
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
    while(in.hasNext()){
    int x = in.nextInt();
    int f = in.nextInt();
    int d = in.nextInt();
    int p = in.nextInt();
        //先满足房租再考虑水果,而且付得起的房租数就等于最大的天数
        int days = d/x;
        if(days<=f) {
            System.out.println(days);
        }else{
        d -= x*f;//减去现有水果天数剩余的钱
        days= f + d/(x+p);//现有水果天+钱除以每日(房租+水果)
        System.out.println(days);
        }
}
}
}

发表于 2019-03-01 18:34:45 回复(0)
js在自己的编译器可以通过,是版本问题么,求大佬解答
function live(x, f, d, p) {
            let days = parseInt(d / x)
            if (f > days) {
                return days;
            } else {
                d = d - x * f;
                days = f + d / (x + p)
                return Math.floor(days) 
            }
        }

发表于 2021-08-28 17:08:20 回复(1)
如果全部用来交房租都不够 f 天,即 x * f >= d,则全部用来交房租,共 d / x 天。否则,先住 f 天,花费 x * f 元,剩余 d - x * f 元,后面一天消耗 x + p 元,那么还可以住 (d - x * f) / (x + p) 天,一共 f + (d - x * f) / (x + p) 天。

x, f, d, p = [int(i) for i in input().split()]
print(d // x if x * f >= d else f + (d - x * f) // (x + p))

编辑于 2021-08-10 22:03:24 回复(0)
#include<stdio.h>
int main()
{
long int day1=0,day2=0;
long int x=0,f=0,d=0,p=0;
scanf("%ld%ld%ld%ld",&x,&f,&d,&p);
day1=(f*p+d)/(x+p);

day2=d/x;

day1=day1<day2?day1:day2;
printf("%d",day1);

return 0;
}

发表于 2021-08-07 20:42:59 回复(0)