| 문제
0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오.
| 입력
첫째 줄에 정수 N(0 ≤ N ≤ 20)이 주어진다.
| 출력
첫째 줄에 N!을 출력한다.
| 풀이
- 반복문 사용
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
long result = 1;
for(int i=1; i<=N; i++)
{
result *= i;
}
System.out.println(result);
}
}
- 재귀함수 사용
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
System.out.println(factorial(N));
}
public static long factorial(int N){
if(N==0 || N==1)
return 1;
else
return N*factorial(N-1);
}
}
| 정리
반복문을 사용해서 풀었는데 팩토리얼은 재귀함수를 활용하는게 더 좋을 것 같아 재귀함수로도 풀이해봤다. (시간 소요가 덜 됨)
0! 도 1이기 때문에 조건문에서 0 또는 1 일 경우에 대한 처리를 해주면 어렵지 않게 풀 수 있을 것 같다~!!