- 596 名前: ◆QZaw55cn4c mailto:sage [2012/05/18(金) 23:59:39.36 ]
- 末尾再帰について教えてください。
宿題スレにて、toro.2ch.net/test/read.cgi/tech/1335517816/497 が末尾再帰でないとの指摘があり、いろいろと考えていました。 思うに、toro.2ch.net/test/read.cgi/tech/1335517816/505 を理由に末尾再帰でない、ということになれば、よくある階乗の再帰関数 int f(int n) { return (n == 0) ? 1 : n * f(n - 1); } ですら末尾再帰ではないことになるのでしょうか? 末尾再帰であるために int f(int n, int i, int p) { return (n == i) ? p : f(n, i + 1, p * (i + 1)); } codepad.org/OSvQa0ni と書かねばならないのでしょうか? 主観的な表現になりますが、なんだかつまらなくなってしまいました。 コメントをいただけるとうれしいです。よろしくお願いいたします。
|

|