网易编程题------独立的小易

题目描述
小易为了向他的父母表现他已经长大独立了,
他决定搬出去自己居住一段时间。一个人生活增加了许多花费:
小易每天必须吃一个水果并且需要每天支付x元的房屋租金。
当前小易手中已经有f个水果和d元钱,小易也能去商店购买一些水果,
商店每个水果售卖p元。小易为了表现他独立生活的能力,
希望能独立生活的时间越长越好,
小易希望你来帮他计算一下他最多能独立生活多少天。
输入描述:
输入包括一行,四个整数x, f, d, p(1 ≤ x,f,d,p ≤ 2 * 10^9),以空格分割
输出描述:
输出一个整数, 表示小易最多能独立生活多少天。
示例1
输入
x f d p
3 5 100 10
输出
11
题目分析: f已有的水果 d现在身上具有的钱
p每个苹果的售价 x支付的房费
小易每天要吃一个水果并且需要每天支付x元的房屋租金。
对不同的状态进行分析:
1:手头上可以支付今天的整个花销,即手上既有苹果,又有钱。
2:手头上没有苹果,只有钱。可以通过购买苹果,变成状态1。
3:手头上没有钱(不够支付房租),不管有没有苹果,都不能活下去。
由上面的几种状态进行分析之后,可发现。
f d/x
====> 如果d/x的结果大于f,说明状态1可以维持f天,进入状态2。
====> 如果d/x的结果小于f,则说明只能维护d/x,进入状态3,结束。
剩下(d-fx)进入状态2,那么这些钱可以支撑多少天,一天的花销在x+p。
所以(d-fx)/(p+x)====g;
最后进入状态3,结束。
x f d p
3 5 100 10
状态1:
d/x ==100/3=33>5 -----------------5
状态2:
d-fx ==100-5*3=85
(d-fx)/(p+x) ==85/13 -----------------6
总共就是11天。

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class EatApple  throws IOException{
    public static void main(String[] args)  {
       BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
       String[] fourNumber =  reader.readLine().split(" ");
       int xNumber = Integer.parseInt(fourNumber[0]);
       int fNumber = Integer.parseInt(fourNumber[1]);
       int dNumber = Integer.parseInt(fourNumber[2]);
       int pNumber = Integer.parseInt(fourNumber[3]);
       int dayNum = 0;
       if(dNumber/xNumber < f) {
          dayNum = dNumber/xNumber;
       } else {
          dNumber = dNumber - fNumber*xNumber;
          dayNum += dNumber/(pNumber+xNumber);
       }
       System.out.println(dayNum);
       
    }
}

        

 

posted @ 2019-04-16 18:20  坦荡的火星  阅读(614)  评论(0编辑  收藏  举报