首页 > 试题广场 >

独立的小易

[编程题]独立的小易
  • 热度指数:867 时间限制: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
//分析题意可能以下几种:
//1.吃完自带水果还有钱。
//2.刚好吃完说过也没钱了(都用来交房租了)。
//3.自带水果有剩余情况,但房租够一天。
//4.房租不够住一天。
//代码:
let lines = readline().split(' ');
let x = lines[0] - 0;//租金
let f = lines[1] - 0;//手上的水果
let d = lines[2] - 0;//手上的钱
let p = lines[3] - 0;//水果价格
if(x*f < d)
{
    let s = d-(x*f);//生活f天后剩余的钱
    let t = parseInt(s / (x+p));
        print(t+f);//总天数
       }//if end
else{
    if(x*f == d)//刚好生活f天的情况
    {
        print(f);
    }
    else{
        d/x>1?print(d/x):print(0);   //多余一天但少于f天的情况和不足一天的情况 
    }
}
编辑于 2019-08-02 15:15:30 回复(0)
var line=readline().split(" ");
var x=parseInt(line[0]);
var f=parseInt(line[1]);
var d=parseInt(line[2]);
var p=parseInt(line[3]);
function exist(x,f,d,p){
   if((x*f)<d){
        var res=d-x*f;
        var day=Math.floor(res/(x+p));
        returnMath.floor(f+day);
    }else{
        returnMath.floor(d/x)
    }
}
console.log(exist(x,f,d,p))
发表于 2019-07-29 21:45:11 回复(0)
       
        let s=readline();
        const arr=s.split(" ");
        let x=Number(arr[0]);
        let f=Number(arr[1]);
        let d=Number(arr[2]);
        let p=Number(arr[3]);
        let day;//可以独立生活的天数
        if(d/x<f||d/x==f){//当水果充足,但钱因为较房租花没时,独立生活天数取决于d/x
            day=Math.floor(d/x);//对小数进行向上取整,5.122=》5
        }else{
            day=f+Math.floor((d-f*x)/(x+p));
        }
        console.log(day);


发表于 2022-04-03 19:17:57 回复(0)
var arr = readline().split(" ");
var x = parseInt(arr[0]);     //3   注意此处要转为数字类型,不转的话9行出错 
var f = parseInt(arr[1]);     //5
var d = parseInt(arr[2]);     //100
var p = parseInt(arr[3]);     //10
if(f * x >= d){
    print(Math.floor(d/x));
}else if(f * x < d){
    print(Math.floor(  (d - f*x)  /(p + x))  + f); 
    //如果上面不转数字类型,就是字符串相加为字符串,导致结果出错
}


发表于 2019-02-24 23:39:05 回复(1)
importjava.util.*;
publicclassMain{
    publicstaticvoidmain(String[] args){
        Scanner sc = newScanner(System.in);
        while(sc.hasNext()){
            longx = sc.nextInt();
            longf = sc.nextInt();
            longd = sc.nextInt();
            longp = sc.nextInt();
            longmin = Math.min((d + f*p)/(x+p), d/x);
             
            System.out.println(min);
        }
    }
}
发表于 2018-08-10 14:32:28 回复(0)
while(line=readline()){
    var str=line.split(' ')
    for(var i=0;i<str.length;i++)
    {
        str[i]=parseInt(str[i])
    }
     
    var price=str[0]*str[1]
    if(price<str[2]){
        var sprice=str[2]-price
        var day=Math.floor(sprice/(str[0]+str[3]))
        print (str[1]+day)
    }elseif(price==str[2])
    {
        print (str[1])
    }else{
        var day=Math.floor(str[2]/str[0])
        print(day)
    }
}

发表于 2018-08-09 20:11:29 回复(0)
importjava.util.Scanner; 
public class Main {
    public static void main(String[] args){
        Scanner in = newScanner(System.in);
        int x = in.nextInt();
        int f = in.nextInt();
        int d = in.nextInt();
        int p = in.nextInt(); 
        if(f * x > d){
            System.out.println(d / x);
        }
        else
            System.out.println((int)(f + Math.floor((d - x * f)/(p + x))));
    }
}

发表于 2018-07-03 17:50:28 回复(0)
var lines=readline().split(' ');
var x=parseInt(lines[0]);
var f=parseInt(lines[1]);
var d=parseInt(lines[2]);
var p=parseInt(lines[3]);
 
var day=f;
if(day*x>d)
{
    day=d/x;
}
else
{
    day=(d+f*p)/(x+p);
}
day=Math.floor(day);
if((day*x+(day-f)*p)>d)
    day--;
print(day);

发表于 2018-06-20 10:11:09 回复(0)

问题信息

上传者:小小
难度:
8条回答 1534浏览

热门推荐

通过挑战的用户