ループを再帰で

ループは全て再帰で表現できるということを、以前どこかで読んだことがあるような読んだことがないような気がするが、そう言われたら「そうだろうな」と思う。だけど、実感としてはわかっていない気がする。

int fff(int ini, int num)
{
  int r = 0;
  int i = 0;
  for(i=ini; i<num+1; i++)
  {
    r += i;
  }
  return r;
}

再帰だと、

int ggg(int ini, int num)
{
  if(ini < num)
  {
    return ini + ggg(ini+1, num);
  }
  return ini;
}

ふむ。

あまり関係ないけど、再帰は和記号(\Sigma)で考えると考えやすい。