Ruby:阶乘递归

Ruby:阶乘递归,ruby,Ruby,两种方法之间的差异出现在第二个if条件下。第一个方法中的if条件是“if num” 比较器运算符是=,而不是=(赋值运算符) 另外,不要忘记使用return关键字,让每个分支都返回一些东西是一个很好的惯例。通常避免在Ruby中使用return关键字,除非出于早期退出/流控制的目的需要。使用return与Ruby不一样,但您肯定应该确保方法中的ast操作/值是您希望返回的操作/值,您需要将factorial(num-1)更改为factorial中的factorial(num-1)和factoria

两种方法之间的差异出现在第二个if条件下。第一个方法中的if条件是“if num” 比较器运算符是
=
,而不是
=
(赋值运算符)


另外,不要忘记使用return关键字,让每个分支都返回一些东西是一个很好的惯例。

通常避免在Ruby中使用
return
关键字,除非出于早期退出/流控制的目的需要。使用
return
与Ruby不一样,但您肯定应该确保方法中的ast操作/值是您希望返回的操作/值,您需要将
factorial(num-1)
更改为
factorial
中的
factorial(num-1)
factorial2
中的
您仍然有
factorial2(0)
的问题。
def fact(n)

return 1 if n==0

return n * fact(n-1)    
end  

puts "Enter number"

n=gets.to_i

a=fact(n)
puts a
if num = 1
def fact(n)

return 1 if n==0

return n * fact(n-1)    
end  

puts "Enter number"

n=gets.to_i

a=fact(n)
puts a