반응형
10872번은 팩토리얼에 관한 문제이다.
n! = n(n-1)(n-2)...1 로, 자기자신부터 하나씩 뺀 걸 1로 될 때까지 계속 곱함이다.
예제를 보면 10을 입력한 후 3628800이 나옴을 확인할 수 있다.
이는 위처럼 10부터 하나씩 뺀 걸 1이 될 때까지 곱했음을 확인할 수 있다.
따라서, 재귀를 사용하거나(python으로 구현)
반복문을 통해 풀 수 있는 듯 하다.(C,C++로 구현)
C언어코드부터 보도록 한다.
- C언어
#include <stdio.h> int main(){ int n,a=1; scanf("%d",&n); if(n==0){ printf("1\n"); return 0; } for(int i=1; i<=n; i++){ a*=i; } printf("%d\n",a); } |
- C++
#include <iostream> using namespace std; int main(){ int n,a=1; cin >> n; if(n==0){ cout << 1; return 0; } for(int i=1; i<=n; i++){ a*=i; } cout << a; } |
- Python
def factorial(n): if(n==0): return 1 if(n==1): return 1 else: return n*factorial(n-1) n = int(input()) print(factorial(n)) |
끝
반응형
'백준' 카테고리의 다른 글
[백준알고리즘]14889번 스타트와 링크 c++ (0) | 2020.07.19 |
---|---|
[백준알고리즘]2750번 수 정렬하기 C++, Python (0) | 2020.07.19 |
[백준알고리즘]14888번 연산자 끼워넣기 파이썬 (0) | 2020.07.18 |
[백준알고리즘]7568번 덩치 c++,python (0) | 2020.07.11 |
[백준알고리즘]10870번피보나치수5 python, c++ (0) | 2020.07.11 |