Ruby求阶乘,第二个方法为什么不能自动转换成长整数?
PHPz
PHPz 2017-04-21 11:17:56
0
2
805
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下结果是不同的,仍然求解

PHPz
PHPz

学习是最好的投资!

répondre à tous(2)
阿神

De quelle version de Ruby s'agit-il ? Je l'ai exécuté sous 2.0.0 et le résultat était normal

Ty80

Les résultats sous 1.9.2 sont également normaux

P.S. Veuillez ne pas utiliser return lorsque vous utilisez Ruby

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!