我一直在四处寻找练习我的递归,但是我在codingBat和其他一些问题上已经没有实践问题了.如果您有更多建议,请随时评论!
我的问题是,即使您必须或可以更改参数,您如何确定何时可以简单地将方法转换为递归方法?
需要递归方法的元素将是一个需要的基本情况,它认为递归的结束,以及循环或不循环的原因(它恢复到基本情况条件).我可能错过了递归方法的任何其他重要方面吗?
我已经找到的递归方法的一个例子(但尚未解决被递归)如下所示.它来自codingBat,我不是要求任何人纠正我的代码.它只是一个可以转换的方法的例子,我发现了.我会弄清楚.
编辑为答案.由于混淆删除了示例.编写递归方法时需要注意的要求:
问题:如何使用其他技术加速递归方法。
简单的斐波那契数列方法使用递归来输出输入的第 N 个数字。
任何建议都会很棒,谢谢。
前任; 输入 50 需要将近一分钟才能最终获得输出。
编辑:更改问题文本,因为它不是递归太慢,而是我的代码。
public static long cycle(int x) {
if(x<=1) {
return x;
} else {
return cycle(x-1)+cycle(x-2);
}
}
Run Code Online (Sandbox Code Playgroud)