演算記号 ( ) を使用せずに数値 (整数または小数/浮動小数点数) を 2 乗する方法を記述する方法があるかどうか疑問に思っていました*
。例: の 2乗はに2
なります。4
2.5
6.25
3.5
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]
コードは整数では機能しますが、浮動小数点数/小数では機能しません。ここで何が間違っていますか?また、誰かがこの問題に対する新しいアプローチを持っている場合は、共有してください. アルゴリズムも歓迎です。また、メソッドのパフォーマンスを考慮するとプラスになります。