我尝试编写一个返回数字总和的递归函数。但是,下面的程序似乎没有办法。数字的递归函数总和R
getSum = function(i) {
if (i < 0) {Print("Please enter a positive number")}
if (i >= 0) {getSum(i - floor(i/10) - i %% 10) + floor(i/10) + i %% 10}
它提供了两个错误:
Error: evaluation nested too deeply: infinite recursion/options(expressions=)?
Error during wrapup: evaluation nested too deeply: infinite recursion/
options(expressions=)?
有人能帮助我吗?
基本调试技术展示:想通过简单的情况。假设你调用'getSum(1)',会发生什么? getSum(0)'怎么样?我建议你只需要解决这个问题,但是你也可以在你的函数中添加一些'print'语句来帮助你检查你的工作。 – Gregor
另外,spacepace可以提高代码的可读性。 – Gregor
我想我明白了:getSum(0)会最终发生,它会继续递归。然后它仍然不会工作。 – Cardinal