Java 仅使用算术的公交公司
我的家庭作业是:我经营一家公共汽车公司,我需要根据一辆公共汽车的座位数和乘客人数知道需要使用多少辆公共汽车。例如:如果我有17名乘客和一辆3座公交车,我必须使用6辆公交车。前15人乘坐5辆公交车,其余2人乘坐1辆公交车 我不能用于循环、if语句或递归,只能用于算术 这是我的伪代码,但它是错误的:Java 仅使用算术的公交公司,java,Java,我的家庭作业是:我经营一家公共汽车公司,我需要根据一辆公共汽车的座位数和乘客人数知道需要使用多少辆公共汽车。例如:如果我有17名乘客和一辆3座公交车,我必须使用6辆公交车。前15人乘坐5辆公交车,其余2人乘坐1辆公交车 我不能用于循环、if语句或递归,只能用于算术 这是我的伪代码,但它是错误的: numbus=numOfPeople / seat; remain=numOfPeople % seat; temp=numOfBus % remain; orderB
numbus=numOfPeople / seat;
remain=numOfPeople % seat;
temp=numOfBus % remain;
orderBus=numbus+temp;
System.out.println(orderbus);
错误在于:为了计算剩余量:
remain = numOfPeople % numbus
最后:
orderBus = numbus + (remain > 0 ? 1 : 0) // an additional bus if the remain > 0
完整代码:
numbus = numOfPeople / seat;
remain = numOfPeople % numbus;
orderBus = numbus + (remain > 0 ? 1 : 0);
// in case you can't use ternary form:
// orderBus = numbus + (remain ^ 0)
System.out.println(orderbus);
由于对no循环和ifs有严格的要求,所以可能也不能使用三元运算符。事实上,你不需要这些 它可以简单到:
System.out.println(Math.ceil(passengers/seat));
例如
(Math.ceil(17/3.0))代码>为您提供6.0
。您需要的是将乘客除以座位得到商。如果商不是一个整数,总是将它四舍五入为一。这是通过使用Math.ceil()
实现的
因此,如果有剩余,您最多可以凑1辆车(还有1辆车来运送其余的乘客)您可以比“这是错误的”更具体一些吗?linetemp=numobus%剩余
没有任何意义,您应该使用Math.ceil((double)numfopeople/seat)
来计算总线数什么是numfobus
?这在问题的范围内是没有定义的。Prehaps您是指第一行中定义的numbus
。@bcsb1001是的,我已经更新了注释,请刷新page@JohnMarrelly看看我下面的解决方案。我不同意这一点。如果我们有5个人,3个人的公交车,你的解决方案说我们需要订购3辆公交车。(1 full+(余数2))。我本来也打算发布一个使用三元的解决方案,但这算不算是OP说他不能使用的if语句?@MattClark问得好,OP没有指定其他语句,所以我认为这不是一个有效的答案。我会让OP回应的。(它也可以通过执行remain^0
来计算,但除非必要,否则我不想进入它)。不,我不能使用三元函数,如数学或类似的函数。只有基本的算术……正如我所评论的,您可以替换(保持>0?1:0)代码>与(保持^0)
OP在评论中写道,他不能使用数学库