きしもとです

> PHP、C言語にも移行可能なロジックと言う意味で一般解と言いました。

PHPはともかく、C言語(特に生のC言語)は、文字列の自由な扱い
とかができないのでかなり癖のある書き方をします。それを一般解と
されるのなら、たぶんちゃんと本物のC言語でやるべきです。

> 今回のテーマは再起呼び出しだったのですが
> 再帰のロジックを書いてみてくださいといって
> 
> def calc(calc(n))
> 
> end
> 
> という書き方をしてしまう人には
> 教える順序というものがあると思います。

そうですね。その段階だとすると、再帰を扱うのが無理なんでは
ないかと思います。しかもやろうとしていることが、再帰以外に、
・整数の文字列化
・文字列処理
・文字列の再整数化
こういったややこしい処理(rubyを使い込んでいればどれも簡単に
できることではありますが)が絡んでいるような回答を標準的な
回答とするような題材を、なぜ、「教える順序というものがある」
とわかっていながら使うのでしょう? その段階で、それでも
とにかく再帰について扱うなら、再帰による 1 + 2 + 3 + 4 でも、
def sum_natural(n)
  if n > 0 then
    n + sum_natural(n - 1)
  else
    0
  end
end
あたりから、なぜ始めないのでしょうか(もしそういう課題は
済ませた、というのであれば申し訳ないですが)。

そもそも、「ロジック」ってなんでしょうね?
Ruby のマニュアルで「論理」という言葉が使われているところを
探すならば、false, true に && や ||、あるいは Integer#& など
です。そういったような意味じゃないですよね?

プログラムロジック、あるいはビジネスロジック↓
http://ja.wikipedia.org/wiki/%E3%83%93%E3%82%B8%E3%83%8D%E3%82%B9%E3%83%AD%E3%82%B8%E3%83%83%E3%82%AF
あたりから派生させて使っておられるのだと思いますが、
「再帰のロジックを書いてみてください」っていったいどういう
意味でしょう? 「ロジック」って言葉を使わないほうが、
正確に表現できるんじゃないですか?

(それでもなお「再帰」の「ロジック」にこだわると、こんな怖い
http://www.tom.sfc.keio.ac.jp/~sakai/d/?date=20090606
ページが出てきちゃいますよ^^;)