일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 다중 catch 블록
- 로켓펀치 #취준컴퍼니 #취업 #일상 #취준생
- 코딩테스트준비
- 예외 처리
- try-catch-finally 블록
- 일반 예외
- throws 키워드
- 개발자취업
- 예외클래스
- 항해99
- til
- 예외
- 99클럽
- 실행 예외
- Today
- Total
innn
10872번 : 팩토리얼 본문
https://www.acmicpc.net/problem/10872
10872번: 팩토리얼
0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오.
www.acmicpc.net
수학의 팩토리얼 (!) 구하는 문제
파이썬 math로 팩토리얼 모듈이 있을 것 같았지만, 일단 내가 아는 정의로 반복문으로 먼저 풀어보았다.
파이썬에선 지금 상태로 for문이 제일 익숙해서 for문 이용.
팩토리얼을 for문으로 풀 때는 주의할 지점이 하나 있다. 팩토리얼 결과값의 변수를 선언시 처음 초기값 설정을 0이 아닌 1로 해야한다는 점(왜냐면 계속 곱해야하는 데 초기값에 0이 있으면 무한정 곱해도 0이니까)
코드 순서는 아래와 같다.
1. 입력 값을 받을 변수 t 선언 int(input()) 으로 변수값 저장할 공간 만들어줌.
2. factorial_t 변수 공간 만들어주기. 이때, 초기화 값은 1로 지정한다.
3. for문으로 0부터 t-1만큼의 횟수만큼 반복(잊지말자. 자바도 그렇듯 파이썬 역시 처음 횟수나 인덱스는 0부터 시작.
파이썬은 특히 범위의 마지막수는 제외되고 돌아가기 때문에 범위 0부터 t-1까지 돌리고 싶으면 in range(t)로 설정해주어야 한다. )
4. factorial *= i+1을 포문으로 돌려준다.
이는 factorial * (i+1) x factorial 을 범위만큼 돌려준다는 뜻. 여기서 왜 i+1을 곱하냐? for문 인덱스가 0부터 시작이니까, 0+1인 1부터 곱해주어야 하니까 +1을 해준 것이다.
5. factorial_t 값을 출력해준다.
코드 1. for문 사용
코드 2. import문으로 팩토리얼 모듈 가져오기 (매우 간단)
코드 3. 재귀함수 이용
'코딩 테스트 > 파이썬 코딩테스트' 카테고리의 다른 글
과제 ) 그래프, DFS, BFS, 백트래킹 (0) | 2022.10.04 |
---|---|
2562번 : 최댓값 (0) | 2022.10.04 |
백준 3009번 : 네 번째 점 (0) | 2022.10.02 |
백준 1085번 : 직사각형에서 탈출 (0) | 2022.10.02 |
백준 2439번 : 별 찍기 - 2 (0) | 2022.09.30 |