HOME»基本情報技術者試験掲示板»新制度サンプル問題  問7の再帰関数について
投稿する

[5371] 新制度サンプル問題  問7の再帰関数について

 あきこまさん(No.1) 
タイトルの問題なのですが、再帰的なプログラムというのは理解も出来て
実際にJavaにて同じものを作成し、結果も問題ないのですが
1つ気になってしまった点がありまして

public class FactorialTest{
public static void main(String[] args){
System.out.println(factorial(4));
}
public static int factorial(int n){
if(n == 0){
return 1;
}else{
return n * factorial(n-1);
}
}
}

上記のようなコードを作成したのですが、変数nは再帰されるたびに-1されていきますが
最終的に0になって0を掛けてしまい結果が0になぜならないのか?という点です。
例えば引数として0を渡した場合、4*3*2*1*0とならないのでしょうか?
また、再帰が終了する条件的なものがありませんが、なぜ再帰のループが終了するのでしょう?
2024.03.27 19:07
まきさん(No.2) 
>例えば引数として0を渡した場合、4*3*2*1*0とならないのでしょうか?

if(n == 0){
return 1;
n=0の時1を返せって記述されてますが・・・
2024.03.27 19:16
 あきこまさん(No.3) 
すみません、自己解決しました💦
2024.03.27 19:16
 あきこまさん(No.4) 
ifが繰り返し呼び出されるんだから当たり前ですよね(汗)
一日中問題解いてて頭がバグってました(汗)
2024.03.27 19:21
返信投稿用フォーム

お名前

顔アイコン


本文(コミュニティガイドライン⇱を順守して適切な投稿を心がけましょう)

投稿削除用のパスワード(20文字以内)

投稿プレビュー
※CBT試験では出題内容の公開が禁止されているため、直接的・間接的を問わず、出題内容や難易度を尋ねる質問は厳禁です。
※宣伝や迷惑行為を防止するため、当サイトとIPAサイト以外のURLを含む文章の投稿は禁止されています。

投稿記事削除用フォーム

投稿No. パスワード 
© 2010-2024 基本情報技術者試験ドットコム All Rights Reserved.

Pagetop