想知道是否有一种方法可以在不使用操作符号 ( *
) 的情况下编写对数字(整数或小数/浮点数)进行平方的方法。例如:square of 2
will be 4
, square of 2.5
will be6.25
和3.5
's will be 12.25
。
这是我的方法:
def square(num)
number = num
number2 = number
(1...(number2.floor)).each{ num += number }
num
end
puts square(2) #=> 4 [Correct]
puts square(16) #=> 256 [Correct]
puts square(2.5) #=> 5.0 [Wrong]
puts square(3.5) #=> 10.5 [Wrong]
该代码适用于整数,但不适用于浮点数/小数。我在这里做错了什么?另外,如果有人对这个问题有新的方法,请分享。算法也很受欢迎。此外,考虑到该方法的性能将是一个加分项。