標準/10872工場(他の方法が必要)
質問する
に答える
この問題は再帰関数を用いて解く問題である.
再貴重関数は何ですか.
これにより、関数func()が定義され、関数func()が定義され、関数が定義されます.
この再帰関数を使用するには2つの注意点があります.
再帰呼び出しが重複しすぎる場合(すなわち、再帰が深まる場合)、Stack OverFlowというエラーが発生します.
関数を繰り返し呼び出すと、メモリスタックのサイズが非常に大きくなり、最終的にオーバーフローを引き起こすことを意味します.
最終的には、再帰呼び出しはメモリ不足を招くため、再帰呼び出しはアルゴリズム上の自然なイメージング以外によく使用されない.
再帰関数の終了点を正しく表現します.
復帰が終了した場所が明確でないと無限ループに陥りやすいので、明確に終了した場所を実現します.
コード#コード#
方法。
public class Num10872 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int N = in.nextInt();
in.close();
int sum = factorial(N);
System.out.println(sum);
}
private static int factorial(int N) {
if(N <= 1) {
// 재귀 종료 조건
return 1;
}
// N이 1이하가 아닌 조건에서는
// 계속해서 매개변수를 N-1로 한 재귀함수로 들어간다.
return N*factorial(N-1);
}
}
関連項目:https://st-lab.tistory.com/93ソース:https://www.acmicpc.net/problem/10872
Reference
この問題について(標準/10872工場(他の方法が必要)), 我々は、より多くの情報をここで見つけました https://velog.io/@dogit/백준-10872-팩토리얼テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol