我尝试编写一个返回数字总和的递归函数。但是,下面的程序似乎没有成功。
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=)?
有人可以帮助我吗?
答案 0 :(得分:2)
使用此
if (i >= 0)
{sum(sapply(strsplit(as.character(i),""),as.numeric))}
当然这适用于整数。如果您需要更多,可以添加正则表达式以适应
编辑!哎呀完全错过了你想要一个递归函数
答案 1 :(得分:2)
你想要这样的东西吗?
getSum = function(i){
i = abs(floor(i))
if (nchar(i) == 1){
return(i)
} else {
getSum(floor(i/10)) +i%%10 #Minorpt (suggested by @DashingQuark)
}
}
答案 2 :(得分:1)
在R中,建议使用 // App.test.js
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
import { render, mount, shallow } from 'enzyme';
it('fails when trying to mount react highcharts', () => {
const wrapper = render(<App />);
});
来创建递归函数。
我正在使用@ d.b的功能,但使用Recall
Recall