본문 바로가기
공부하자/알고리즘

[백준] 10872번 팩토리얼 C, java

by snbrin 2022. 1. 20.

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;
		
	}

}

재귀함수를 사용하여 하나씩 작아지는 값을 곱한다. 이것도 코딩 처음 공부 시작했을 때 했던 알고리듬..듬..