Help us understand the problem. What is going on with this article?

CODEPREPで勉強(2019/2/12)

More than 1 year has passed since last update.

初めての投稿

CODEPREP「Ruby 配列・Hash・Class 操作演習」1-2

問題文が「1からnまで数値を要素に持つ配列を返す create_array メソッドを実装しましょう。」だったので
まず作ってみましたが

def create_array(n)

if n <= 0
array = []
return array
else
array = Array.new(n){|a| a}
end
end
これだと
メソッド create_array(10) の返り値は "[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]" でした。期待される値は "[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]" です。
となってしまいました。

なので
array = Array.new(n+1){|a| a}
としましたが
それだと今度は
メソッド create_array(10) の返り値は "[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]" でした。期待される値は "[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]" です。
となり、最後の要素は10が出るが、最初の要素が0のままでした。(そもそも配列の要素数が1個増えてしまう。}

最後に
array = Array.new(n){|a| a+1}
でうまく表示された。

CODEPREPの演習問題は答え合わせがないので、合っているのか不安になります。。。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away