小编Mac*_*lie的帖子

大数的 Ruby 求幂警告

我正在解决 Ruby 中的一个问题。名为last_digit 的函数接受两个整数。然后将第一个整数计算为第二个整数的幂。计算完成后,该函数必须返回该整数的最后一位数字。例如,如果第一个整数是 2,第二个整数是 4,则该函数将执行 2 ** 4,等于 16,然后返回最后一位数字这个数字是 6。

我已经编写了一个 ruby​​ 函数来执行此操作,但一旦数字变得太大,我相信结果默认为无穷大,并且我的函数返回错误答案 0。我的 ide 还会显示以下警告:

warning: in a**b, b may be too big 469Infinity
Run Code Online (Sandbox Code Playgroud)

我的代码和测试用例如下所示:

def last_digit(n1, n2)
  num = n1 ** n2
  if num == 0
    return print 1
  end
  return print num.to_s[-1].to_i
end

last_digit(4, 1)                # returns 4
last_digit(4, 2)                # returns 6
last_digit(9, 7)                # returns 9
last_digit(10, 10 ** 10)        # return 0
last_digit(2 ** 200, 2 ** 300)  # should return 6 but …
Run Code Online (Sandbox Code Playgroud)

ruby integer infinity

1
推荐指数
1
解决办法
255
查看次数

标签 统计

infinity ×1

integer ×1

ruby ×1