250x250
Notice
Recent Posts
Recent Comments
관리 메뉴

탁월함은 어떻게 나오는가?

[백준알고리즘] 10872번 팩토리얼 문제풀이 [JAVA, C] 본문

[Snow-ball]프로그래밍(컴퓨터)/Algorithm Training

[백준알고리즘] 10872번 팩토리얼 문제풀이 [JAVA, C]

Snow-ball 2022. 1. 17. 16:54
반응형

문제

0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오.

 

입력

첫째 줄에 정수 N(0 <= N <= 12)이 주어진다.

 

출력

첫째 줄에 N!을 출력한다.

 

 

 

JAVA 풀이

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package com.company.recursive;
 
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
 
public class Factorial {
    // 0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오.
    // 팩토리얼은 1부터 n까지 숫자를 차례대로 곱한 값이며 ! (느낌표) 기호로 표기
    // N(0 ≤ N ≤ 12)
    // fact n * ( n - 1 )
    public static void main(String[] args) throws IOException {
 
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int inputNum = Integer.parseInt(br.readLine());
 
        int totalNum = fact(inputNum);
        System.out.println("totalNum : " + totalNum);
 
    }
 
    public static int fact(int num) {
 
        // fcatorial 함수의 핵심은 반환값 부분이다. 계산 결과가 즉시 구해지는 것이
        // 아니라 재귀호출로 n - 1을 계속 전달하다가 n이 1일 때 비로소 1을 반환하면서
        // n과 곱하고 다시 결괏값을 반환한다. 그 뒤 n과 반환된 결과값을 곱하여 다시
        // 반환 하는 과정을 반복한다.
        if (num > 1) {
            num = num * fact(num - 1);
            return num;
        }
 
        return 1;
    }
}
 
cs

 

 

C 풀이

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
// #include : 전처리기(preprocessor)
// <stdio.h> : standard input output 
// h : header 약자
 
int fact(int num) {
    if (num > 1return num * fact(num - 1);
    else if (num == 1return 1;
    
}
 
int main() {
    int num;
    scanf("%d"&num);
    printf("%d", fact(num));
 
    return 0;
}
cs

 

 

 

 

 

 

 

 

 

 

베타존 : 네이버쇼핑 스마트스토어

나를 꾸미다 - 인테리어소품 베타존

smartstore.naver.com

 

반응형
Comments