简单处理的迭代与递归?

Iteration vs. Recursion for simple processing?

我正在尝试将一个数字减少到所需的值范围,比如说 x 直到它小于 100。我正在做的是将数字除以 10 直到它小于 100。

什么是更好的方法,递归还是迭代?

递归方法通常在执行时间方面更昂贵(因为方法调用会引入额外的开销)。此外,如果递归太深,它可能会导致 Whosebug 异常(可能不适用于您的情况,但是,如果您的初始数字足够小以保持递归调用的数量较低)

因此,迭代是首选。

迭代是你的朋友。
迭代次数: "repeat something until it's done."
递归:“通过将大问题分解成更小的问题来解决它 和更小的部分,直到你能解决它;结合 结果。"

递归通常也慢得多,当迭代适用时,它几乎总是首选。

相关问题:Recursion vs Iteration.

What is recursion and when should I use it?

与递归方法相比,我更喜欢迭代方法。您可以做的一件很酷的事情是。

for (;num > 100; num /=10) {}

其中 num 是您要除的数。

在一天结束时,编译器通常会找到最好的事情,因此请以您认为最合乎逻辑的方式设计您的程序。

递归的效率低于迭代,因为在递归期间调用堆栈被大量使用,因此与递归调用相关的开销通常更多。

而且迭代比递归调用更容易理解和维护。在某些情况下,根据您编写算法的方式,递归算法的代码复杂度可能更高。见 Iterative and recursive version has same complexity?