タグ

c言語とTipsに関するni66lingのブックマーク (1)

  • 「末尾再帰」の勝ち組的学び方 - ウィリアムのいたずらの、まちあるき、たべあるき

    ウィリアムのいたずらが、街歩き、べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も) 末尾再帰ってあるじゃないですか・・・ って、書いて、??といわれると、先に話が進まないので、説明しちゃうと、 自分を呼び出す再帰プログラムの場合、 int a(x) { if ( x == 1 ) { return 1; } return x + a(x-1); } とかやってしまうと、a(x-1)の再帰をやった後で、xと掛ける作業が必要ななので、このxの領域を保存しておかなきゃいけない、ってことは、再帰を行うたびに、メモリ領域ががんがん増えていくので、よくないなどと、C言語では、言われてたわけです。 でもね、もし、再帰のあとに、なーんにも命令がなかったら、つまり、 int a_oya(x) { int hikisu; hikisu = 0; a(&hikisu,x); retu

    「末尾再帰」の勝ち組的学び方 - ウィリアムのいたずらの、まちあるき、たべあるき
  • 1