반응형
1309 : 팩토리얼
제한시간1000 ms 메모리제한32 MB 해결횟수2121 회 시도횟수6177 회
문제
1부터 어떤 양의 정수 n까지의 정수를 모두 곱한 것을 말하며 n!로 나타낸다.
0! = 1
1! = 1
2! = 2
n! = n * (n-1)!
:
와 같이 정의된다.
예로 4! = 4×3×2×1 = 24 이다.
n! 이 주어졌을 때 결과를 출력하는 프로그램을 작성하라.
* 결과가 int범위를 넘는 경우
long long 입력/출력 서식문자 %lld
를 사용한다.
입력형식
입력은 한 줄로 이뤄지며 팩토리얼의 숫자 n(1≤n≤15)이 입력된다.
출력형식
n!에 대한 계산 결과를 "출력예"처럼 과정을 출력하고 마지막에 결과를 출력한다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
System.out.println(fact(N));
}
// 팩토리얼 재귀함수
private static long fact(int n) { // int형은 13!부터 범위를 벗어남
if (n <= 1) { // 1일때 리턴
System.out.println("1! = 1"); // 조건을 위한 출력
return n;
} else { // fact 호출을 통한 팩토리얼 구현
System.out.println(n + "! = " + n + " * " + (n - 1) + "!"); // 조건을 위한 출력
return fact(n - 1) * n;
}
}
}
http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=589&sca=2080
반응형
'Algorithm > 문제 풀이' 카테고리의 다른 글
[JUNGOL_1697 - JAVA] 큐(queue) (0) | 2020.01.27 |
---|---|
[JUNGOL_1102 - JAVA] 스택 (0) | 2020.01.27 |
[JUNGOL_2604 - JAVA] 그릇 (0) | 2020.01.25 |
[JUNGOL_2813 - JAVA] 소수의 개수 (0) | 2020.01.25 |
[JUNGOL_2809 - JAVA] 약수 (0) | 2020.01.25 |