我正在尝试在vbscript中实现一些递归。
Function largest_prime_factor (ByVal num)
For i = 2 to num/2
If num mod i = 0 Then 'this number is not prime
largest_prime_factor (num / i)
End If
Next
largest_prime_factor = num ''if at this point, we have reached the largest prime
End Function
正如您所看到的,它是一个基本上旨在为我提供数字的最大素数因子的脚本。但是,当我运行打印时,这个脚本仍然向我吐出推算数字。调试之后,我发现脚本确实会在for循环中输入条件,但是它不会递归(即:它将继续运行for循环,然后在该点之后结束)
我对VBscript中的递归有什么看法?我也试过了
的效果largest_prime_factor = largest_prime_factor (num / i)
在条件内,这也不起作用。
答案 0 :(得分:4)
在上面发布的代码中,您犯了两个小错误
工作代码---
Function largest_prime_factor (ByVal num)
For i = 2 to num/2
If num mod i = 0 Then 'this number is not prime
num= largest_prime_factor (num / i)
Exit For
End If
Next
largest_prime_factor = num ''if at this point, we have reached the largest prime
End Function