Tag: 指数

为什么本代码无法找到权力? (ruby)

App Academy的练习测试表明,他们选择的方法是查找输入是否为2的幂是在循环中将其除以2并检查最终结果是1还是0(在测试数字1和0作为输入之后) ),这是有道理的,但为什么这种方式不起作用? def try gets(num) counter = 0 go = 2 ** counter if num % go == 0 return true else counter = counter + 1 end return false end 我无法弄清楚为什么这不起作用,除非计数器不起作用。

Ruby 1.8.7中的Exponentiation返回错误的答案

我尝试在irb中计算3 ** 557时遇到了这个问题。 Ruby和MacRuby都安装在我的Mac(OS X 10.8)中。 ruby的版本是1.8.7,MacRuby 0.12(ruby 1.9.2)。 rib和macirb在计算3 ** 557时给了我两个不同的答案。 (macirb是对的。) $ irb >> 3**557 => 54755702179342762063551440788945541007926808765326951193810107165429610423703291760740244724326099993131913104272587572918520442872536889724676586931200965615875242243330408150984753872526006744122187638040962508934109837755428764447134683114539218909666971979603 $ macirb irb(main):001:0> 3**557 => 57087217942658063217290581978966727348872586279944803346410228520919738045995056049600505293676159316424182057188730248707922985741467061108015301244570536546607487919981026877250949414156613856336341922395385463291076789878575326012378057561766997352898452974964563 然后我尝试了更大的东西,例如3 ** 5337,这次我得到了相同的答案。 那么,这是Ruby 1.8.7中的一个错误,还是我应该使用另一种方法来计算取幂?