再帰関数がうまく使えない
魂ぬけるさん
(No.1)
再帰関数を使用した問題がうまく解けません。
この問題は再帰関数を使う問題、この条件まで自身を呼び出すというのはなんとなくわかるのですがそこからどのように進めればいいのかわからなくなってしまいます。
再帰関数について説明されているサイトや動画をみたりしたのですが問題になると解けないので、再帰関数自体の理解が進んでいないのだと思います。
そこで、質問なのですが、皆さんは再帰関数についてどのように勉強されましたか?
活用された書籍やサイト、考え方のコツなどありましたら教えてほしいです。
この問題は再帰関数を使う問題、この条件まで自身を呼び出すというのはなんとなくわかるのですがそこからどのように進めればいいのかわからなくなってしまいます。
再帰関数について説明されているサイトや動画をみたりしたのですが問題になると解けないので、再帰関数自体の理解が進んでいないのだと思います。
そこで、質問なのですが、皆さんは再帰関数についてどのように勉強されましたか?
活用された書籍やサイト、考え方のコツなどありましたら教えてほしいです。
2026.04.23 15:51
ジャバおさん
(No.2)
まずは再帰関数の最も基本的な形から理解して、徐々に応用問題を解いていきました。
基本形の代表例として、nの階乗を求める関数があります。
int factorial(int n)
{
if (n <= 1)
return 1;
else
return n * factorial(n-1);
}
ますは上記が理解できますでしょうか。上記の基本形が理解できれば、後は応用ですので
惑わされず基本に則って解いていけば解けるようになります。いかがでしょうか。
基本形の代表例として、nの階乗を求める関数があります。
int factorial(int n)
{
if (n <= 1)
return 1;
else
return n * factorial(n-1);
}
ますは上記が理解できますでしょうか。上記の基本形が理解できれば、後は応用ですので
惑わされず基本に則って解いていけば解けるようになります。いかがでしょうか。
2026.04.23 16:27
魂ぬけるさん
(No.3)
ジャバおさん
返信ありがとうございます。
示していただいた基本形は、例えばですが、
n=3の場合は戻り値が6ということでよいでしょうか?
考え方
3*factorial(2)
↓
2* factorial(1)
↓
1*1
ここから上に戻っていく、
3*2(戻り値6)
↑
2*1
↑
1*1
おっしゃる通り、形がかわると途端にわからなくなってしまう(上記の考え方ができなくなってしまう)ので私は応用問題が弱いのだと思います。
もう一度基本から解く練習をしようと思います。
返信ありがとうございます。
示していただいた基本形は、例えばですが、
n=3の場合は戻り値が6ということでよいでしょうか?
考え方
3*factorial(2)
↓
2* factorial(1)
↓
1*1
ここから上に戻っていく、
3*2(戻り値6)
↑
2*1
↑
1*1
おっしゃる通り、形がかわると途端にわからなくなってしまう(上記の考え方ができなくなってしまう)ので私は応用問題が弱いのだと思います。
もう一度基本から解く練習をしようと思います。
2026.04.23 17:00
ジャバおさん
(No.4)
その理解で合っています。頑張って下さい。
2026.04.23 17:15
魂ぬけるさん
(No.5)
ジャバおさん
ありがとうございます!
問題を解いて、理解を深めて合格できるようにがんばります
ありがとうございます!
問題を解いて、理解を深めて合格できるようにがんばります
2026.04.23 17:25
広告
返信投稿用フォーム
投稿記事削除用フォーム
広告