私はRubyを学ぶのが初めてで、ユーザーに入力を求め、その数を2乗してから、2乗した数の桁の合計を返そうとしています。いつ .to_s と .to_i を使用するか混乱しています。また、ショートカットを使用せずにこれを実現したいと考えています。
これが私がこれまでに持っているものです(これは機能しません):
def sqr_digit_sum(n)
square = (n ** 2).to_s
no_of_digits = square.size
sum = 0
i = 0
while i < no_of_digits
sum += square[i].to_i
i += 1
end
puts sum
end
81 の 2 乗に 9 を入力すると、square[0] が 8 ではなく 56 を返す理由がわかりません。