网易编程题------独立的小易
题目描述
小易为了向他的父母表现他已经长大独立了,
他决定搬出去自己居住一段时间。一个人生活增加了许多花费:
小易每天必须吃一个水果并且需要每天支付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); } }
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
