【发布时间】:2016-02-13 10:55:06
【问题描述】:
我是编程新手,尤其是 Ruby,所以我一直在做一些基本的项目。我有这段代码,据我所知,它应该可以工作,但它给出了我没想到的结果
程序接受 a 和 B 并返回 a^b。我这样做是为了进行编程练习,因此我不只是去 a**b。
class Exponate
attr_accessor :args
def initialize args = {}
@args = args
@ans = nil
end
def index
@args[:b].times {
@ans = @args[:a] * @args[:a]
}
puts @ans
end
end
e = Exponate.new(:a => 32, :b => 6)
e.index
e.args[:a] = 5
e.index
返回
1024 # Should be 1_073_741_824
25 # Should be 15_625
但他们绝对不是那样
【问题讨论】:
-
为什么不直接
@args[:a] ** (@args[:b] + 1)? -
@spickermann 因为我想手动完成,作为编程练习
-
你应该通过描述你想让程序做什么来改进你的问题,否则它将被关闭。
标签: ruby multiplication exponentiation