728x90
반응형
이번 문제는 아래 링크에서 풀어볼 수 있습니다.
10872번: 팩토리얼
0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오.
www.acmicpc.net
문제
0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 정수 N(0 ≤ N ≤ 12)이 주어진다.
출력
첫째 줄에 N!을 출력한다.
예제 입력 1
10
예제 출력 1
3628800
예제 입력 2
0
예제 출력 2
1
정답 코드
나의 답안
파이썬 Ver.
import sys n = int(sys.stdin.readline().rstrip()) def mySolution(n): return n * mySolution(n - 1) if n > 1 else 1
자바스크립트/NodeJS Ver.const fs = require('fs'); const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt'; let input = fs.readFileSync(filePath).toString().trim(); input = parseInt(input); const answer1 = (num) => { return num > 1 ? num * answer1(num - 1) : 1; }; console.log('answer1', answer1(input));
답안 1
파이썬 Ver.
import sys n = int(sys.stdin.readline().rstrip()) def answer1(n): result = 1 for i in range(1, n + 1): result *= i return result print("answer1", answer1(n))
자바스크립트/NodeJS Ver.const fs = require('fs'); const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt'; let input = fs.readFileSync(filePath).toString().trim(); input = parseInt(input); const answer2 = (num) => { let result = 1; for (let i = 1; i <= num; i++) { result *= i; } return result; }; console.log('answer2', answer2(input));
답안 2
import math import sys n = int(sys.stdin.readline().rstrip()) def answer2(n): return math.factorial(n) print("answer2", answer2(n))
문제 풀이
팩토리얼을 코드로 구현하면 되는 문제이다. 팩토리얼이란 특정 숫자보다 작거나 같은 모든 양의 정수의 곱이다. 예를 들어 숫자 5가 주어지면 5의 팩토리얼(5!)은 5 * 4 * 3 * 2 * 1 = 120이다.
팩토리얼을 파이썬으로 구현하는 방법은 크게 3가지가 있다. 재귀, 반복문, 내장 모듈이다. 재귀의 경우 매개변수에 입력값 n을 전달하여 n이 1보다 클 동안 n * n - 1을 수행한다. 여기서 주목할 점은 n - 1을 다시 함수의 매개변수로 전달한다는 점인데 이로써 순차적으로 1씩 감소시킬 수 있는 것이다.
함께보기
[Python]파이썬 팩토리얼(factorial) 구현 3가지 방법(for/재귀/math)소스 코드
오늘은 파이썬을 이용하여 팩토리얼을 구하는 3가지 방법에 대해서 알아보겠습니다. 방법 하나. for 반복문 사용 방법 둘. 재귀함수 사용 방법 셋. math library 사용 우선 구현하고자하는 팩토리얼
manniz.tistory.com
728x90
반응형
'👩💻 Programming > Coding Test 문제 풀이' 카테고리의 다른 글
[Baekjoon] 2004 조합 0의 개수(자바스크립트/NodeJs) (0) | 2023.01.03 |
---|---|
[Baekjoon] 1676 팩토리얼 0의 개수(파이썬/자바스크립트/NodeJs) (0) | 2023.01.02 |
[Baekjoon] 6588 골드바흐의 추측(파이썬/자바스크립트/NodeJS) (0) | 2023.01.02 |
[Baekjoon] 1929 소수 구하기(에라토스테네스의 체)(파이썬/자바스크립트/NodeJS) (0) | 2023.01.01 |
[Baekjoon] 1978 소수 찾기(파이썬/자바스크립트/NodeJS) (1) | 2023.01.01 |
댓글