【发布时间】:2019-11-07 22:24:34
【问题描述】:
我是 R 新手,我在使用简单的递归函数时遇到了困难。我将变量 x 初始化为 .1,然后调用递归函数,如果 x 不等于用户输入的数字,它将向 x 添加 .1 并再次递归调用该函数。如果 x 大于输入数字,则函数返回错误消息。
我尝试将 x 设置为整数,主要是 1,然后尝试评估函数。这个过程有效,所以我认为存在将十进制数相加然后用整数评估它们的相等性的问题。
u<-function(a)
{
#Initialize r
x<-.1
#Call to recursive method
v(a, x)
}
#Recursive function
v<-function(a, x)
{
#Check for current value of a and r
print(a)
print(x)
if(a==x) {
return("Yes")
}
else if(a < x) {
return("Error!")
}
else{
x<-x+.1
v(a, x)
}
}
当我将 a 设置为 1 时,我希望函数在递归之后返回“是”,直到 x 也等于 1。然而,这种情况并非如此。然后该函数再次递归,将 x 设置为 1.1 并返回消息“错误!”。
【问题讨论】:
标签: r recursion binary-operators