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

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

 あきこまさん(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
返信投稿用フォームスパム防止のためにスレッド作成日から30日経過したスレッドへの投稿はできません。
© 2010- 基本情報技術者試験ドットコム All Rights Reserved.

Pagetop