10872번: 팩토리얼
0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오.
www.acmicpc.net
팩토리얼(Factorial)이란 N이라는 자연수가 있을때 1부터 N까지 자연수의 곱을 의미한다.
표현은 N!으로 한다.
예를 들어 6!은 1*2*3*4*5*6이므로 720이 나오게 된다.
import java.util.*;
class Main{
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int result = a;
if(a > 0){
for(int i = a-1; i > 0; i--){
result = result * i;
}
System.out.println(result);
} else {
System.out.println(1);
}
}
}
a는 팩토리얼을 구하고자하는 수를 입력받아 저장하는 변수이다.
result는 결과값을 저장하는 변수이고 초기값으로는 입력받은 a를 저장한다.
먼저 a가 0인지 아닌지를 검사하여 0일 경우에는 1을 출력하게하고
0이 아닐경우에는 반복문을 실행한다.
for문을 보게되면 i는 a-1부터 0까지 1씩 감소하게 작성하였고
실행부에는 result에 i값을 곱하여 result에 저장한다.
반복이 종료되면 출력을 하게되고 프로그램이 종료된다.
0의 팩토리얼은 0이지만 위 프로그램에서는 0일떄의 출력값을 1로 출력되게 짜여져있으므로
if문으로 구분하여 1로 출력한다.
'Algorithm' 카테고리의 다른 글
[JAVA] 알고리즘 소수 판별 (0) | 2020.09.11 |
---|---|
[JAVA] 백준 알고리즘 11653번 소인수 분해 (0) | 2020.09.10 |
[JAVA] 백준 알고리즘 10870번 피보나치 수열 (0) | 2020.09.10 |