일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 독후감
- JavaScript
- 알고리즘트레이닝
- 책알남
- 자바스크립트
- algorithmtraining
- 주식
- 경제
- 백준알고리즘
- 알고리즘 공부
- C
- 알고리즘공부
- 재테크
- C++
- Java
- 돈
- 프로그래머스 알고리즘 공부
- 서평
- 채권
- 투자
- 자바
- 프로그래밍언어
- 지혜를가진흑곰
- 화장품
- 다독
- 독서
- 성분
- algorithmStudy
- algorithmTest
- 책을알려주는남자
Archives
- Today
- Total
탁월함은 어떻게 나오는가?
[백준알고리즘] 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 > 1) return num * fact(num - 1);
else if (num == 1) return 1;
}
int main() {
int num;
scanf("%d", &num);
printf("%d", fact(num));
return 0;
}
|
cs |
반응형
'[Snow-ball]프로그래밍(컴퓨터) > Algorithm Training' 카테고리의 다른 글
[백준알고리즘] 2798번: 블랙잭 (0) | 2022.01.27 |
---|---|
[백준알고리즘] 10870번 재귀방식 피보나치 수 5 문제풀이 [JAVA, JAVASCRIPT, C] (0) | 2022.01.18 |
[알고리즘트레이닝] 백준알고리즘 1085번: 직사각형에서 탈출 [JAVA] (0) | 2021.08.03 |
[알고리즘 트레이닝] 백준 알고리즘 1316번: 그룹 단어 체커 [JAVA] (0) | 2021.07.06 |
[알고리즘트레이닝] 백준 알고리즘 14681번 : 사분면 고르기 [JAVA] (0) | 2021.07.02 |
Comments