Java 我应该使用递归而不是循环来回答这个问题吗?
一个男人开车去拜访他的姻亲。总距离是60英里,他以每小时60英里的速度出发。在行驶了整整1英里后,他对旅行失去了一些热情,并且(瞬间)减速到每小时59英里。在又行驶了一英里后,他再次减速到每小时58英里。这种情况持续下去,每行驶1英里,每小时逐渐减速1英里,直到行程完成 现在我知道该怎么做了我相信 我要找出他每英里的行驶速度,计算他每行驶1英里需要多长时间,然后我要把所有的值相加,得出答案 我试图写一个方程来实现这一点,但我认为循环或递归会更简单Java 我应该使用递归而不是循环来回答这个问题吗?,java,loops,recursion,Java,Loops,Recursion,一个男人开车去拜访他的姻亲。总距离是60英里,他以每小时60英里的速度出发。在行驶了整整1英里后,他对旅行失去了一些热情,并且(瞬间)减速到每小时59英里。在又行驶了一英里后,他再次减速到每小时58英里。这种情况持续下去,每行驶1英里,每小时逐渐减速1英里,直到行程完成 现在我知道该怎么做了我相信 我要找出他每英里的行驶速度,计算他每行驶1英里需要多长时间,然后我要把所有的值相加,得出答案 我试图写一个方程来实现这一点,但我认为循环或递归会更简单 有人能给我指出正确的方向,让这个程序给我正确的答
有人能给我指出正确的方向,让这个程序给我正确的答案吗。在纸上,我可以轻松地添加并获得4.6小时(正确答案),但编写递归程序有点困难(或者我应该使用循环?对于这个确切的问题,没有太多的复杂性和资源问题。您可以使用这两种解决方案中的任何一种。我想在这种情况下,循环会更简单。尽管如此,递归也不会很复杂 递归地是:
public static double run(double miles, double speed){
if(miles <= 1){
return 1/speed;
}
return 1/speed + run(miles-1, speed-1);
}
公共静态双跑(双英里,双速){
如果(英里),请为您的案例使用循环。
public static double run(double miles, double speed){
return 1/speed + (miles <= 1 ? 0 : run(miles-1, speed-1));
}