def f(n)
i = 1
while n > 0
i *= n
n -= 1
end
return i
end
def f2(n)
if n == 1
return 1
else
return n * f2(n-1)
end
end
puts f(22)
puts f2(22)
运行结果
:!ruby test.rb | tee /var/folders/_y/prf_0rd90dj668w8cp6fr8gc0000gn/T/vYzoU63/38
1124000727777607680000
-1250660718674968576
(1 of 2): 1124000727777607680000
呃…发现在vim中使用外部命令和在shell下结果是不同的,仍然求解
De quelle version de Ruby s'agit-il ? Je l'ai exécuté sous 2.0.0 et le résultat était normal
Les résultats sous 1.9.2 sont également normaux
P.S. Veuillez ne pas utiliser return lorsque vous utilisez Ruby