Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我应该使用递归而不是循环来回答这个问题吗?_Java_Loops_Recursion - Fatal编程技术网

Java 我应该使用递归而不是循环来回答这个问题吗?

Java 我应该使用递归而不是循环来回答这个问题吗?,java,loops,recursion,Java,Loops,Recursion,一个男人开车去拜访他的姻亲。总距离是60英里,他以每小时60英里的速度出发。在行驶了整整1英里后,他对旅行失去了一些热情,并且(瞬间)减速到每小时59英里。在又行驶了一英里后,他再次减速到每小时58英里。这种情况持续下去,每行驶1英里,每小时逐渐减速1英里,直到行程完成 现在我知道该怎么做了我相信 我要找出他每英里的行驶速度,计算他每行驶1英里需要多长时间,然后我要把所有的值相加,得出答案 我试图写一个方程来实现这一点,但我认为循环或递归会更简单 有人能给我指出正确的方向,让这个程序给我正确的答

一个男人开车去拜访他的姻亲。总距离是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));
}