https://www.acmicpc.net/problem/10872
10872번: 팩토리얼
0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오.
www.acmicpc.net
C
#include <stdio.h>
int fact(int n) {
if (n > 1)
return n * fact(n - 1);
else
return 1;
}
int main() {
int n=0;
scanf("%d", &n);
/*재귀함수 사용하지 않을 때
int fact = 1;
for (int i = 1; i <= n; i++) {
fact *= i;
}
printf("%d", fact);
*/
printf("%d", fact(n));
return 0;
}
java
package javastd1;
import java.util.Scanner;
public class bj10872 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
System.out.println(fact(n));
}
static int fact(int n) {
if(n>1)
return n*fact(n-1);
else
return 1;
}
}
재귀함수를 사용하여 하나씩 작아지는 값을 곱한다. 이것도 코딩 처음 공부 시작했을 때 했던 알고리듬..듬..
'공부하자 > 알고리즘' 카테고리의 다른 글
[백준] 7568번 덩치 C, java (0) | 2022.01.25 |
---|---|
[백준] 10757번 큰수 A + B C, java (0) | 2022.01.20 |
[백준] 2869번 달팽이는 올라가고 싶다 C, java (0) | 2022.01.19 |
[백준] 10870번 피보나치 수 5 C, java (0) | 2022.01.19 |
[백준] 1316번 그룹 단어 체커 C (0) | 2022.01.15 |