読者です 読者をやめる 読者になる 読者になる

感謝のプログラミング 10000時間

たどり着いた結果(さき)は、感謝でした。

【アルゴリズムとデータ構造】再帰呼び出しのアルゴリズムの簡単なサンプルを試してみる。

<スポンサーリンク>

再帰呼び出しとは

再帰呼び出しとは、ある関数Aの内部で自分自身を呼び出して処理を繰り返すこと。
呼び出された関数Aのなかで、さらに関数Aが呼ばれ・・また呼ばれ・・・と自分自身を呼び続けるので再帰呼び出しという。

再起呼び出しの例は以下の通り。関数の中でまた関数を呼び出している。

def num_of_one(val)
  #与えられた引数が0だったら0を返す
  if val == 0 then
    return 0
  end
  #10で割ったあまりが1なら、1プラスする。
  if val % 10 == 1
    ret = 1
  else
    ret = 0
  end
  #再起呼び出しでぐるぐる回して、1桁ずつ精査していく
  #最終的に、1の数がretの値になる。
  return ret + num_of_one(val / 10)
end

#適当な数字
num = 12321231121921721996921
#上記の適当な数字に[1]が何個あるか調べる
ret2 = num_of_one(num)
#1の数を表示
puts(ret2) #結果は「8」

読んだ本

プログラミングの宝箱 アルゴリズムとデータ構造 第2版

プログラミングの宝箱 アルゴリズムとデータ構造 第2版


この本の内容はC++Javaでサンプルが書かれているため、自分なりにRubyに直して実行してみた。
アルゴリズムの解説が非常にわかりやすい。

感謝のプログラミング

今回で感謝のプログラミングは【624時間目】
10000時間まで、あと【9376時間】