10872번: 팩토리얼
0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오.
www.acmicpc.net
문제
0보다 크거나 같은 정수 N이 주어진다. 이때, N! 을 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 정수 N(0 ≤ N ≤ 12)가 주어진다.
출력
첫째 줄에 N! 을 출력한다.
For문을 이용한 소스코드(Python3) - 맞았습니다!!
n = int(input())
def Factorial(n) :
result = 1
for N in range(1, n+1) :
result = result * N
return result
print(Factorial(n))
잘못된 소스코드
처음 알고리즘 문제를 풀었는데, 계속 구문 오류가 났다...
n = input("n!를 구할 정수 n을 입력하세요(0 ~ 12) : ")
result = 1
def Factorial(n) :
for N in range(1, n+1) :
global result *= N
return result
print(Factorial(n))
잘못 1) input으로 받은 숫자는 문자다.
ex) "3"
잘못 2) 함수 안에서 전역 변수(global)를 수정할 수 없다.
ex) global result = 2
재귀 함수를 이용한 소스코드(Python3) - 런타임에러 ㅎㄷㄷ
n = int(input())
def Factorial(n) :
if n==1 :
return 1
return n * Factorial(n-1)
print(Factorial(n))
재귀 함수를 잘 이용을 못해서.. 참고 사이트..
dojang.io/mod/page/view.php?id=2353
파이썬 코딩 도장: 31.2 재귀호출로 팩토리얼 구하기
이번에는 재귀호출을 사용하여 팩토리얼을 구현해보겠습니다. 팩토리얼은 1부터 n까지 양의 정수를 차례대로 곱한 값이며 !(느낌표) 기호로 표기합니다. 예를 들어 5!은 5 * 4 * 3 * 2 * 1이며 결과는
dojang.io
알고리즘 문제를 처음 풀면서 깨달은 점)
input안에 ""을 주고받으면 답이 틀렸다고 뜬다. "정수 입력하세요 : "로 이용하지 말고, 바로 input()으로 입력받자.
'알고리즘 > 백준' 카테고리의 다른 글
201030 A+B-4 10951번(C++) (0) | 2020.10.30 |
---|---|
201030 블랙잭(Python 3) 2798 (1) | 2020.10.30 |
200923 최댓값 2562번(C++) - 해결 (0) | 2020.09.23 |
200921 피보나치 수 5(Python 3) 10870 (2) | 2020.09.21 |
200916 숫자 카드 10815번(C++)-해결 (2) | 2020.09.15 |