촉촉한초코칩

[백준] 27433(팩토리얼 2) c언어 본문

Algorithm

[백준] 27433(팩토리얼 2) c언어

햄친구베이컨 2024. 2. 16. 00:45

문제

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

입력

첫째 줄에 정수 N(0 ≤ N ≤ 20)이 주어진다.

출력

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


#include <stdio.h>

long func(int n) {
  long t = 1;

  while(n > 0) {
    t *= n;
    n--;
    func(n);
  }
  return t;
}

int main(void) {

  int n;
  scanf("%d", &n);
  if(0 <= n && n <= 20) {
    printf("%ld\n", func(n));
  } 
}

 

팩토리얼이 어렵다면 우선 for문으로 구현하고 바꾸는 걸 연습해보는 것도 나쁘지 않을지도..? 
그냥 int형으로 하면 20을 계산할 때 int형 범위를 벗어나서 long 형으로 바꿔주었다.